全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1322
推到 Plurk!
推到 Facebook!

通过事务,调用存储过程插入到数据库

尚未結案
hwj_wj123
一般會員


發表:2
回覆:0
積分:0
註冊:2006-12-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-13 17:36:01 IP:60.178.xxx.xxx 訂閱
循环一个记录集,通过事务,调用存储过程插入到数据库 

问题是:调用正常,但是第一条记录没能保存到数据库

事务探查结果:
1. set implicit_transactions on 开始事务
2. EXEC spInsert 'xx', 'xx' 保存第一条记录
3. SET NO_BROWSETABLE ON
4. SET FMTONLY ON EXEC spInsert ' ', ' ' SET FMTONLY OFF
5. set fmtonly off (其他正确的类似操作,跟踪时没有这一句?????)
6. SET NO_BROWSETABLE OFF
7. EXEC spInsert 'xx', 'xx' 保存第二条记录
8. EXEC spInsert 'xx', 'xx' 保存第三条记录
9. 提交事务



通过以下方式调用:
ADOConnection1.BeginTrans; //开始事务
try
while not cdstmp.eof do
begin
...
ADOStoredProc1.Execute;
cdstmp.next;
end;
ADOConnection1.CommitTrans; //提交事务
except
on E: Exception do
begin
ADOConnection1.RollbackTrans; //如有异常,事务回滚
ShowMessage(E.Message);
end
end;
以前类似的操作也是这样做的,都没有问题。
偏偏这一次第一行不能保存,为什么?????
已经困惑我很久了,帮帮我吧!!!!!



把事务去掉是好的,第一条记录也可以保存
也就是:
while not cdstmp.eof do
begin
...
ADOStoredProc1.Execute;
cdstmp.next;
end;
編輯記錄
taishyang 重新編輯於 2008-04-14 09:44:26, 註解 無‧
系統時間:2024-05-21 12:40:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!