利用Query控件对Oracle数据库进行数据提交?急!!! (100分)

  • 主题发起人 主题发起人 hugecheng
  • 开始时间 开始时间
H

hugecheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Query控件获取数据,并设置了缓存,进行插入、删除、编辑等操作。但是数据
提交时出现了问题。直接用applyupdates、commitupdates提交,删除、编辑的数据能马
上提交到数据库中,但是插入的数据不行。打开事务后,插入的数据可以马上提交到数
据库中,而提交删除、编辑的数据时,就出错,错误提示:Capability not supported!
我用的是Oracle 8i 数据库。如何能将数据马上提交到数据库中?
这个问题困扰我好久了(奉上100分)。
代码如下:请指点!!
if not database.intransaction then
database.StartTransaction;
try
query.ApplyUpdates;
database.Commit;
except
database.Rollback;
end;//try
query.commitupdates;
插入数据时,这段代码正常运行,数据马上得到提交。但是如果是编辑或是删除数据时,
运行到query.applyupdates时就出错,提示'Capability not supported',很奇怪!
 
你用什么数据库?
 
我用的是Oracle 8i
 
怎么没人帮我?
 
贴出代码看一下。可能是你的方法错了。
 
能不能把代码贴出来看看
这种错误一般情况应该是数据库不支持该语法
 
看看代码?应该没问题的
 
代码如下:请指点!!
if not database.intransaction then
database.StartTransaction;
try
query.ApplyUpdates;
database.Commit;
except
database.Rollback;
end;//try
query.commitupdates;
插入数据时,这段代码正常运行,数据马上得到提交。但是如果是编辑或是删除数据时,
运行到query.applyupdates时就出错,提示'Capability not supported',很奇怪!
 
看不出什么毛病,单步调试看是哪一步出错了?
 
真是让人失望!!!
 
看看你的BDE设置,
SQLAR8
OCI.dll
共享自动提交等等
还有,你操作的表有主键吗??
 
应该是没有主键的问题,并且query设置updatewhere可以keyonly
OCI.dll可以手工改为ora8?*.dll,具体看你安装的客户端,这个比oci.dll快且稳定

-----
http://www.8421.org
 
多人接受答案了。
 
后退
顶部