我后台用的是oracle数据库,我现在想进行如下操作:
    先删除表中数据
    再插入另外一些数据
    如果插入不成功的话,则恢复到删除前。
    请问可以用rollback 实现吗?如果可以的话,怎么用,麻烦详细一些告诉我!
    我的语句:
     mysql="delete from table1"
     Rs.open mysql,con,adopendynammic,adlockoptimistic
     mysql="insert into table1 values('2','ewr')//添加不成功则不进行上一步的delete操作
     Rs1.open mysql,con,adopendynammic,adlockoptimistic     

解决方案 »

  1.   

    On Error GoTo err1
    adocon.BeginTrans
       mysql="delete from table1"
         Rs.open mysql,con,adopendynammic,adlockoptimistic
         mysql="insert into table1 values('2','ewr')
    adocon.CommitTrans
    Exit Sub
    err1:
    adocon.RollbackTrans
      

  2.   

    当然可以了,我根据你的sql临时写了个,放到sub中就可以了On Error GoTo ErrHandle
    Dim mysql As String
    Dim rs As New ADODB.Recordset
    Dim rs1 As New ADODB.Recordset
    Dim con As New ADODB.Connection
    con = "连接字符串(自己填)"con.BeginTrans
    mysql = "delete from table1"
    rs.open mysql, con, adopendynammic, adlockoptimistic
    mysql = "insert into table1 values('2','ewr')"
    rs1.open mysql, con, adopendynammic, adlockoptimistic
    con.CommitTransExit Sub
    ErrHandle:
    con.RollbackTrans
    If Err.Number <> "" Then
        Err.Raise Err.Number, Err.Source, Err.Description
    End If