DELPHI如何处理事务嵌套?(应该很简单,可我...)
pjy 2001-03-30 03:00:00 使用updatesql控件更新一个表的记录,在表中有一个触发器,因为业务需要,
有类似以下语句(sql server 7):
begin trans
if ...
rollback trans
else
begin
...
commit trans
end
在DELPHI中的保存按钮中语句如下:
query.post;
database.starttransaction;
try
query1.applyupdates;
if database.intransaction then //无论是否加上,效果一样
commit;
except
rollback;
end;
但在执行时,如果触发器中执行了rollback,则COMMIT语句报错。我知道是因为ROLLBACK将事务全部返回,COMMIT没有TRANSACTION与之对应的原因。但应该在DELPHI中如何处理了?
我现在是获取delphi中的错误号来进行的处理,有什么更好的办法。、
另:为什么if database.intransaction then在这里不起作用?