ADOconnection 事务处理例子

来源:互联网 发布:嘉兴华点软件 编辑:程序博客网 时间:2024/05/08 15:41

 

 

  
  conn:=tadoconnection.create();  
  conn.begintrans();  
  try  
   
  .....  
  .....  
  conn.commit();  
  conn.free;  
  conn:=nil;  
   
   
  except  
  conn.rollback();  
  conn.free;  
  conn:=nil;  
  end;  

 

 

----------------

Void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
  /*///////////////////////////////////////////////////////////////////  
  //   函数功能:当用户输入数据后,添加程序先判断是否在数据库中已经存在  
  //                       相同的记录内容,如果没有,则提示要求用户最后确认,如果  
  //                       用户确认,则使用事务处理添加数据  
  //   执行环境:BCB5   Up1   +   SQL   SERVER2000   +   ADO  
  //   Author:       bearbaba  
  //   Create:       20020510  
  ///////////////////////////////////////////////////////////////////*/  
   
   
          Integer   j;             //申明的变量J用来获取Select查询的结果,如果结果不等于0则说明已经存在相同的记录  
          ADOQuery1->SQL->Clear();  
          ADOQuery1->SQL->Add("SELECT   count(*)   FROM   BZ_lab   WHERE   Name   =   :'"+Edit1->Text+"'");  
          ADOQuery1->Open();  
          j=ADOQuery1->RecordCount;  
   
          if(j!=1){  
   
                  if   (   Application->MessageBox("确认你的输入吗?",   NULL,   MB_OKCANCEL)==   IDOK){  
                        ADOConnection1->BeginTrans();  
                        try{  
                              ADOQuery1->SQL->Text   =   "INSERT   BZ_lab(EX_No,Name,ShortName,Sign)   VALUES(1,'"+Edit1->Text+"','"+Edit2->Text+"','"+Edit3->Text+"')";  
                              ADOQuery1->ExecSQL();  
                        }catch(...)  
                        {  
                              ADOConnection1->RollbackTrans();  
                        }  
                        ADOConnection1->CommitTrans();  
                        ADOTable1->Refresh();  
                  }  
          }  
          else  
                ShowMessage("已经存在相同的记录,请求被拒绝!");  
  }   
 


 

原创粉丝点击