请教各位高手:有关事务处理的问题 (200分)

  • 主题发起人 主题发起人 杀人了
  • 开始时间 开始时间

杀人了

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,在我的程序中我显式的使用了事务处理

try
Database.Starttranscation;
StoredPorc1.ExeProc; //问题在这一句。下面的A

//下面还有很多数据处理工作
except
rollback
end;

Database.Commit;

A:我在上句中的存储过程内部也使用了事务处理。可是当后面的语句错误时,
我只能rollback database的事务。storproc内的数据却因没有问题而插入到
数据库中了。这显然不符合我的要求,那该怎么办呢?是否这样???????????:
try
Query1.SQL.Add('Exec proc....');
except
Database.rollback;
end;

还有什么好办法吗?就是两个事务能否相互控制?

 
你用的是什么数据库。有的数据库不支持事务处理嵌套使用。
 
用的是SQLSERVER7吗?!
在SQLSERVER7,rollback是回滚所有的事务,即
begin tran
begin tran
xxxx
rollback tran

begin
xxxx
rollback tran
是一样的

除非rollback tran 加上参数,具体看book online.


 
横:估计他在sp里commit了
你把sp的事物去了不就得了?好象不影响啊?
 
同意CJ,存储过程中去掉事务处理。
 
同意CJ,我觉得在存储过程中加入事务,逻辑性不大好。
 
多人接受答案了。
 
后退
顶部