我在新增之前先将所有数据删除,然后中批量新增.如何保证这两个要么一起成功要么失败,也想看看大家的想法

解决方案 »

  1.   

    '*************************************************************************
    '**函 数 名:exsql
    '**输    入: -
    '**输    出:(Boolean) -执行是否成功
    '**功能描述:执行sql语句
    '**全局变量:
    '**调用模块:
    '**作    者:影子
    '**日    期:2005-03-17 11:01:11
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Public Function exsql(ParamArray sql()) As Boolean    '事务执行1个sql语句
        Dim cnConn As ADODB.Connection
        Set cnConn = New ADODB.Connection
        Dim Mysql
        On Error GoTo err1    cnConn.Open CN
        cnConn.BeginTrans '开始一个事务    For Each Mysql In sql
            cnConn.Execute Mysql
        Next
        cnConn.CommitTrans '提交一个事物    Set cnConn = Nothing
        exsql = TrueExit Functionerr1:
        cnConn.RollbackTrans '回滚一个事物
        exsql = False
    End Function
      

  2.   

    如果插入是用adodb.recordset对象,删除用cnconn.execute mysql
      

  3.   

    For Each Mysql In sql
            cnConn.Execute Mysql
        Next
    这个枚举是什么意思呀,在线等
      

  4.   

    把这两个操作语句放在同一个事务中就可以了:
    private sub command1_click()
    on error goto err:
        conn.begintrans   '开启事务
        conn.execute "delete from tablename"
        conn.execute "insert into tablename(...) values(...)"
        conn.execute "insert into tablename(...) values(...)"   
        ...
        conn.committrans  '提交事务
        exit sub
    err:
        conn.rollbacktrans   '错误则回滚事务
    end sub