事务处理后, 程序退出时报错:'在事务处理过程中,连接对对象不能被显式地切断。'(100分)

  • 主题发起人 主题发起人 zhang w.
  • 开始时间 开始时间
Z

zhang w.

Unregistered / Unconfirmed
GUEST, unregistred user!
每当执行下面的摸块后(不管是1次or多次),程序在退出时都报错(如题),请指教。
delphi+ado+access 程序如下:

try
if iDataBase.InTransaction then iDataBase.CommitTrans ;
iDataBase.BeginTrans ;
with updatesql do
begin
commandtext :=toHistory1;
Parameters.ParamByName('Colv').value :=idw;
Parameters.ParamByName('date').value :=date0;
Parameters.ParamByName('jzrq').value :=date1;
execute;

commandtext :=toHistory2;
Parameters.ParamByName('dwid').value :=idw;
Parameters.ParamByName('date').value :=date0;
execute;
end;
iDataBase.CommitTrans;
except
on E: exception do
begin
iDataBase.RollbackTrans ;
MessageBox(0,pchar('保存数据错!'),pchar('TDataMain.iSavels'),
MB_OK+MB_ICONWARNING);
end;
end;
 
access对显式事务的支持么?
 
有可能你的事务还没有结束你就结束你的程序了
我一般是用存储过程来处理事务的
就是把需要事务处理的部分写成存储过程
在delphi里面调用这个存储过程就行了,我觉得这样比在delphi
里面控制事务要好,不知你觉得怎么样
 
千中元:为了测试Access对事务是否支持, 我另写了一个小程序测试,
答案是肯定的, 也查了Access和Ado的帮助, 其中也都提供了进行事务的例子。
我测试的程序除了数据库、Sql语句和上例不同外, 其他与上例完全一致,
进行事务处理后,退出时一切正常。
另外: 上例第二条sql源数据表有三千多条记录, 并且是视图, 不
知这有没有影响?
小猪 :其实我也想用数据库的存储过程, 但我不会VB,MS Access的存
储过程我看是要用VB的。
>有可能你的事务还没有结束你就结束你的程序了
你也看到我的代码了, 应该提交了.
 
多人接受答案了。
 
后退
顶部