代码如下:Flist里面装有SQL语。就这段代码。一个月前是正确的,今天忽然发现事务没有起作用!我用的dbconn.begintrans以前在SQL SERVER的事件探测器里面有显示,现在竟然没有了
不知道了是怎么一回事
procedure TfrmImport.ExecSQL;
var
i:integer;
begin
if not dbconn.InTransaction then
dbconn.BeginTrans; for i:=0 to FList.Items.Count-1 do
begin
with ADOQuery do
begin
try
close;
SQL.Clear;
SQL.Add(Flist.Items[i]);
ExecSQL;
except
on E:Exception do
Begin
dbconn.RollbackTrans;
showmessage('导入第'+inttostr(i+2 )+'行数据时出错,错误信息是:'+E.Message); break;
end;
end;
end;
end;
//如果数据都没有错误
if dbconn.InTransaction then
begin
dbconn.CommitTrans;
showmessage('成功导入数据');
end;
end;
不知道了是怎么一回事
procedure TfrmImport.ExecSQL;
var
i:integer;
begin
if not dbconn.InTransaction then
dbconn.BeginTrans; for i:=0 to FList.Items.Count-1 do
begin
with ADOQuery do
begin
try
close;
SQL.Clear;
SQL.Add(Flist.Items[i]);
ExecSQL;
except
on E:Exception do
Begin
dbconn.RollbackTrans;
showmessage('导入第'+inttostr(i+2 )+'行数据时出错,错误信息是:'+E.Message); break;
end;
end;
end;
end;
//如果数据都没有错误
if dbconn.InTransaction then
begin
dbconn.CommitTrans;
showmessage('成功导入数据');
end;
end;
解决方案 »
- 不用WriteProcessMemory写内存用什么?
- 【转】征集Delphi2011评测内容!!!
- Invalid Pointer operation,点击DLL中MDIChild窗体的菜单项后,引出的问题。 请高手分相助啊
- label的 onMouseLeave 事件,有时候不触发,古怪
- 怎么样通过IdTCPClient控件来接收服务器端发送过来的数据。
- 100分求一个简单问题,关于打开文件,在线等,帮顶者有分,不论有没有结果,一周内结贴。
- 脑子都想破的资源释放问题
- 高手请进,一个关于事件调用的问题!(在线等待,问题解决马上结贴!)
- 是不是delphi的bug?
- Tcontrol没有Font属性????
- 高手们,在数据模块上能用messagebox吗?怎么老是报错!
- 听说ExpressQuantumGrid Suite v5.0 的BUG太多,不好用
如果没有,就没事
我update 50条记录,最后一条故意设置错误,结果系统'showmessage('导入第'+inttostr(i+2 )+'行数据时出错,错误信息是:'+E.Message);'执行了这个,然后执行rollback,但是最后查看结果的时候前面update的东西并没有回滚!
set implicit_
transaction on),
现在就没有了。不知道是不是那个地方设置有问题
dbconn.BeginTrans;
try
做你要对数据库的操作
dbconn.CommitTrans;
Showmessage('你的提示语');
except
dbconn.RollbackTrans;
Showmessage('你的提示语');
end;