我现在使用的是Delphi+BDE+Oracle,在处理数据时使用Query、UpDateSQL来增加、保存数据。
增加完成的是先Append再ApplyUpdate,保存时是直接ApplyUpdate但大多情况下执行正确,有时则出现Oracle的唯一索引错误(保存时出的错,增加时从来没出过错),通过SQL Monitor的跟踪发现有时保存时,BDE向还后台提交了Insert语句(应该只有UpDate语句)。问题找到了,但是我不知道错在那里,请各位大侠多多帮忙!
增加完成的是先Append再ApplyUpdate,保存时是直接ApplyUpdate但大多情况下执行正确,有时则出现Oracle的唯一索引错误(保存时出的错,增加时从来没出过错),通过SQL Monitor的跟踪发现有时保存时,BDE向还后台提交了Insert语句(应该只有UpDate语句)。问题找到了,但是我不知道错在那里,请各位大侠多多帮忙!
解决方案 »
- 高手请看:delphi调用VC的dll的问题?你所没遇到过的事情。
- 在函数中创建 TXMLDocument 的问题
- 远程连接PostgreSQL数据库错误!请指教!
- 收取邮件时如何获取每个邮件下载的进度?
- delphi调用bcp导出导入数据的问题
- 欢迎光临超专业的技术文档搜索引擎www.51base.com,分数不多,up者有分
- 在paradox 7类型的表中,$(货币型)的字段如何使值可以输入到小数点后4位?
- 为什么Oracle中不需要设置主键?
- 请教Updatesql是否可以动态设置?
- 急!!急死人了,为什么我的邮件接收软件只能收部分网站的邮件??救救我,大虾,要给炒鱿鱼了。。唔唔。。
- 拿到工资单的日子,竟是最难受的日子!
- 我是用一个query 返回一个数据集,然后只想打印其中第n条记录,用quickrep
“通过SQL Monitor的跟踪发现有时保存时,BDE向还后台提交了Insert语句(应该只有UpDate语句)。”
你的SQL写的有问题吧
insert into BDZ_SBDJJL
(XH, DJID, DYID, PDDJ, PDYY, JLXCSJ)
values
(:XH, :DJID, :DYID, :PDDJ, :PDYY, :JLXCSJ)update BDZ_SBDJJL
set
XH = :XH,
DJID = :DJID,
DYID = :DYID,
PDDJ = :PDDJ,
PDYY = :PDYY,
JLXCSJ = :JLXCSJ
where
XH = :OLD_XHdelete from BDZ_SBDJJL
where
XH = :OLD_XH再线
starttransaction
commit
好象是这样吧,忘了,呵呵
try
BDModule1.db_Main.StartTransaction;
DQZQuery.ApplyUpdates;
DQXQuery.ApplyUpdates;
BDModule1.db_Main.Commit;
except
BDModule1.db_Main.Rollback;
MessageBoxEx(Handle, msg_Tab_SavErr, msg_Title,
MB_OK + MB_ICONERROR,LANG_CHINESE);
end;