关于ADO 连接 SQLServer的事务处理。

本文探讨了使用ADO进行数据库操作时如何正确地实现事务处理。通过具体的代码示例,讲解了开始事务、执行数据库操作(如更新和删除)、提交事务以及异常处理和回滚的过程。特别关注了如何避免因错误处理而导致的无法开始新事务的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

main.ADOConnection1.BeginTrans;                                 //开始一个事务  
   
  ……………………//         我的一些处理,包括几个查询和数据插入,更新,删除等  
   
  with   ADOQuery1   do  
  begin  
  //…………update       1  
        try  
              ADOQuery1.open   ;  
        Except  
              MessageDlg('无法打开数据库!',mtWarning,   [mbYes],   0)  
        end;   //try  
   
  //…………delete       2  
        try  
              ADOQuery1.open   ;  
        Except  
              MessageDlg('无法打开数据库!',mtWarning,   [mbYes],   0)  
        end;   //try  
   
  //…………delete       3  
        try  
              ADOQuery1.open   ;  
        Except  
              MessageDlg('无法打开数据库!',mtWarning,   [mbYes],   0)  
        end;   //try  
  end;  
   
   
  try  
          main.ADOConnection1.CommitTrans;                                             //结束事务  
  except  
  main.ADOConnection1.RollbackTrans;                                         //出错回滚  
          MessageDlg('读写数据库出错,记录已回滚!',mtInformation,   [mbYes],   0);  
          exit;  
  end;  
   
  如果我在     2     的地方出错了,结束事务这一块就不做了,当我第二次运行这段程序的时候就报错,说无法开始一个事务。我的写法错在哪里?应该怎么写? 问题点数:20、回复次数:3Top

 

1 楼blackfiles(一个和尚挑水喝)回复于 2002-04-25 16:36:53 得分 10

try  
      ADOConnection.BeginTrans;  
      //Delete   1;  
      //Delete   2;  
      ADOConnection.CommitTrans;    
  except  
        ADOConnection.RollbackTrans;  
  end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值