oracle8数据库提交问题?(200分)

  • 主题发起人 主题发起人 lhy9988
  • 开始时间 开始时间
L

lhy9988

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构,adoconnection,socketconnection,oracle8,客户端用clientdataset连接数据库
用commandtext查询的结果连接到dbgrid上,能成功显示数据库内容;
问题:
在dbgrid上的任何更新都提交(用applyupdates)不到oracle中,
有经验的高手,帮帮忙吧,急死了!
 
怎么没人理我
 
怎么没人理我
 
adoconnection is auto commit?
if not please call commit()
 
不可能吧,正常情况都行的啊,
你是不是那里还有控制啊?
 
applyupdates实际上不是包含了commit了吗
 
同样的操作,换一个表就能提交上,难道对数据库有什么要求吗?
 
如果显示返回的出错数据,只显示第一行
 
你有权利更改数据吗?数据库端如何配置的?
 
你在dbgrid中更新,只是对查询出来的数据集进行修改,但是并没有修改数据库。
你必须在服务器端更新数据集才行。
 
applyupdates更新服务器,数据库有写的权限,用pb就能写进去,真的使我无能为力
 
你首先要检查该Provider是不是只读,再检查取数据到DBGrid 的SQL语句是不是取至不
同表,最后检查数据库触发器。
 
ClientDataset.applyUpdates(0)的结果是否为0,如果不为0就是在更新过程中出错了。
if ClientDataset.applyUpdates(0)<>0 then
showmessage('Update Fail')
 
if clientdataset1.ApplyUpdates(0)=0 then

showmessage('ll')
else
showmessage('oo');
结果总是oo
Provider没有只读的属性呀
我更新的是单表
 
1. clientdataset1.ApplyUpdates(0);
2. 尝试用sql语句,提交给APP Server来执行看看啦。
 
DataSetProvider.Option + [poAllowCommandText];
把poAllowCommandText属性加上
或自己写更新语句:
BeforeUpdateRecords(...);
begin
case UpdateKind of
ukInsert: ...
ukModify: ...
ukDelete: ...
end;
 
clientDataSet1.ApplyUpdates(0);
 
我认为是你数据表的问题,是不是你的客户端的数据是多表join出来的数据,如果是,
肯定是不能更新的。
 
后退
顶部