很多时候,需要每次批量执行SQL,尤其是有些不能用存储过程的时候,程序写起来比较麻烦。
为了简单,写了下边的这个函数。只要将数据库连接对象,和由sql文组成的1维数组传递进去,
就可以实现批量的执行SQL语句,并在任何一条语句执行失败的时候回滚.
Function RunSQL(ByRef conDB, ByVal arrSQL)
Dim l_intICount
On Error Resume Next
If UCase(TypeName(conDB)) = UCase("Connection") Then
RunSQL = -1
Exit Function
End If
conDB.BeginTrans()
If IsArray(arrSQL) Then
For l_intICount=0 To UBound(strSQL)
conDB.Execute strSQL(l_intICount)
If conDB.Errors.Count > 0 Then
conDB.RollbackTrans()
JAfnc_ExecSQL = -1
Exit Function
End If
Next
Else
conDB.Execute strSQL
If conDB.Errors.Count > 0 Then
conDB.RollbackTrans()
JAfnc_ExecSQL = -1
Exit Function
End If
End If
conDB.CommitTrans()
JAfnc_ExecSQL = 1
End Function