ADO中有无事务处理,如有,该怎么用,我想实现的是将一次加入几条记录的操作取消,回到原来将加入的那几条记录删除

解决方案 »

  1.   

    有的.记得不是很清楚.开始事务好像是begin Transaction,commit提交,rollback撤消,详细的请看一下帮助.
      

  2.   

    ADOQuery1.Connection.BeginTrans;   //开始
      try
      ......
        ADOQuery1.Connection.CommitTrans;
      except
        ADOQuery1.Connection.RollbackTrans;  //回滚
      end;接分
      

  3.   

    cnn.begintrans'事务开始
    ...........
    cnn.committrans'提交事务
    error:
    cnn.rollbacktrans'出错回滚事务
      

  4.   

    to:  vitamin_ok(New水水) 
    写的是什么?
      

  5.   

    示例:
    功能:更改数据库的 Titles 表中所有心理学书籍的书籍类型。在 BeginTrans 方法启动事务将所有对 Titles 表的更改隔离后,CommitTrans 方法将保存更改。可使用 Rollback 方法撤销用 Update 方法保存的更改。Public Sub BeginTransX()   Dim cnn1 As ADODB.Connection
       Dim rstTitles As ADODB.Recordset
       Dim strCnn As String
       Dim strTitle As String
       Dim strMessage As String   ' 打开连接。
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       Set cnn1 = New ADODB.Connection
       cnn1.Open strCnn   ' 打开 Titles 表。
       Set rstTitles = New ADODB.Recordset
       rstTitles.CursorType = adOpenDynamic
       rstTitles.LockType = adLockPessimistic
       rstTitles.Open "titles", cnn1, , , adCmdTable
       
       rstTitles.MoveFirst
       cnn1.BeginTrans   ' 在记录集中循环并询问是否想要更改指定标题的类型。
       Do Until rstTitles.EOF
          If Trim(rstTitles!Type) = "psychology" Then
             strTitle = rstTitles!Title
             strMessage = "Title: " & strTitle & vbCr & _
             "Change type to self help?"         ' 更改指定雇员的标题。
             If MsgBox(strMessage, vbYesNo) = vbYes Then
                rstTitles!Type = "self_help"
                rstTitles.Update
             End If
          End If         rstTitles.MoveNext
       Loop   ' 询问用户是否想提交以上所做的全部更改。
       If MsgBox("Save all changes?", vbYesNo) = vbYes Then
          cnn1.CommitTrans
       Else
          cnn1.RollbackTrans
       End If   ' 打印记录集中的当前数据。
       rstTitles.Requery
       rstTitles.MoveFirst
       Do While Not rstTitles.EOF
          Debug.Print rstTitles!Title & " - " & rstTitles!Type
          rstTitles.MoveNext
       Loop   ' 恢复原始数据,因为这只是演示。
       rstTitles.MoveFirst
       Do Until rstTitles.EOF
          If Trim(rstTitles!Type) = "self_help" Then
             rstTitles!Type = "psychology"
             rstTitles.Update
          End If
          rstTitles.MoveNext
       Loop   rstTitles.Close
       cnn1.CloseEnd Sub
      

  6.   

    有,本人提供一个表只有两个字段的情况例子:
    dim strSql as string
    strsql="insert into table1 values(value1,value2)"
    strsql=sqlstr & "insert into table1 values(value3,value4)"cnn.begintrans
    on error goto ErrBegins
       cnn.execute strsql
       cnn.commonittrans
       exit sub
    ErrBegins
       msgbox "想写什么就写什么"