连续执行几个SQL语句问题.数据库与程序问题.大家都是怎么做的?
 
连续执行N个insert语句分别将一条信息存到N张表.由于所录信息太多,无法做到完全的验证. 
在这样的情况下,如何避免只运行了M(m<n)步,而m+1到N步没有执行?最好能给个实例

解决方案 »

  1.   

        datl.Open "DBQ=" & App.Path & "\report.mdb" & ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
        '开始事物 添加数据
            datl.BeginTrans
            datl.Execute "delete from cx "
            z = 0
            For i = 1 To EditGrid1.Rows - 1
                SQL = "insert into cx(a1,a2,a3,a4,a5,a6) values("
                SQL = SQL & "'" & EditGrid1.TextMatrix(i, 0) & "  "
                If Left(EditGrid1.TextMatrix(i, 1), 2) <> "分值" Then
                    SQL = SQL & EditGrid1.TextMatrix(i, 1) & "',"
                    SQL = SQL & "'" & EditGrid1.TextMatrix(i, 2) & "',"
                Else
                    SQL = SQL & " " & "',"
                    SQL = SQL & "'" & " " & "',"
                End If
                SQL = SQL & "'" & EditGrid1.TextMatrix(i, 3) & "',"
                SQL = SQL & "'" & EditGrid1.TextMatrix(i, 4) & "',"
                SQL = SQL & "'" & EditGrid1.TextMatrix(i, 5) & "',"
                If Trim(EditGrid1.TextMatrix(i, 6)) = "100.00%" Then
                    SQL = SQL & "'" & " " & "')"
                Else
                    SQL = SQL & "'" & EditGrid1.TextMatrix(i, 6) & "')"
                
                End If
                datl.Execute SQL
                z = z + 1
                If z = 28 Then z = 0
            Next
            
            For i = 1 To 28 - z
                SQL = "insert into cx(a2) values (' ')"
                datl.Execute SQL
            Next
            datl.CommitTrans
      

  2.   

    把所有的东西数据库操作放在事务里
    首先开始事务
    BeginTrans 数据库操作
    CommitTrans