DELPHI7 + MSSQL2000
我在MSSSQL中写了一个存储过程。
假如现在我要批量更新一批数据,为了保证数据的完整,我用了事务处理,要么全部成功,要么全部失败。
在DELPHI7中,DELPHI是如何得知,事务是成功了呢还是失败了?

解决方案 »

  1.   

    在储存过程用事务,回滚时用RETURN返回一个数比如-1,递交成功时返回0。DELPHI可以根据返回值判断是否成功。
      

  2.   

    在SQL中處理,DELPHI中如下if not ADOConnection1.InTransaction thentry
        ADOConnection1.BeginTrans;   //事务开始    //执行你需要的所有操作    ADOConnection1.CommitTrans; //事务提交
        ShowMessage('执行所有的更新、删除、修改都成功了,也就是一致了!');
       except
        ADOConnection1.RollbackTrans;     //事务回滚
        ShowMessage('失败了!');
       end;
     
      

  3.   

    调用RollbackTrans就表示回滚了,如果这个事务,你一直没有提交,断开连接时SQLServer也会回滚这个事务。
      

  4.   

    在储存过程中也使用事务,失败时返回-1,递交成功时返回0。  begintrans  aaa   ……CommitTransif @@recordcount = 0
      rerurn 1
    else
      resurn -1
    delphi调用的时候判断存储过程的返回值就好了。