日期:2014-05-18 浏览次数:20751 次
Public Function ExecuteSynEx(ByVal strConn As String, _
ByVal strTableName As String, _
ByVal bIsIdentity As Long, _
ByVal strAddSQL As Variant, _
ByVal strUpdSQL As Variant, _
ByVal strDelSQL As Variant, _
ByRef ReturnMsg As String) As Boolean
10 On Error GoTo HError
Dim cn As ADODB.Connection
Dim lInterID As Long, lTransType As Long
Dim i As Long
Dim strSQL As String
Dim obj As Object
Dim lSQLCount As Long
'20 GetObjectContext.SetAbort
30 ExecuteSynEx = False
40 Set cn = New ADODB.Connection
50 cn.Open strConn
60 cn.CursorLocation = adUseClient
70 cn.CommandTimeout = 3600
'80 cn.Execute "alter table " & strTableName & " nocheck constraint all"
If bIsIdentity = 1 Then
cn.Execute "SET IDENTITY_INSERT " & strTableName & " on"
End If
90 Set obj = CreateObject("KFOX.StringBuilder")
100 lSQLCount = 0
110 For i = LBound(strDelSQL) To UBound(strDelSQL)
120 strSQL = Trim(strDelSQL(i))
130 If Len(strSQL) > 0 Then
140 lSQLCount = lSQLCount + 1
150 obj.Append strSQL
160 End If
170 If lSQLCount = 100 Then
180 cn.Execute obj.StringValue
190 obj.Remove 1, obj.length
200 lSQLCount = 0
210 If cn.Errors.Count > 0 Then
220 Err.Raise -1, "ExecuteSynEx", cn.Errors.Item(0).Description
230 End If
240 End If
250 Next i
260 If lSQLCount > 0 Then
270 cn.Execute obj.StringValue
280 obj.Remove 1, obj.length
290 lSQLCount = 0
300 If cn.Errors.Count > 0 Then
310 Err.Raise -1, "ExecuteSynEx", cn.Errors.Item(0).Description
320 End If
330 End If
340 Set obj = Nothing
350 Set obj = CreateObject("KFOX.StringBuilder")
360 lSQLCount = 0
370 For i = LBound(strAddSQL) To UBound(strAddSQL)
380 strSQL = Trim(strAddSQL(i))
390 If Len(strSQL) > 0 Then
400 lSQLCount = lSQLCount + 1
410 obj.Append strSQL
420 End If
430 If lSQLCount = 100 Then
440 cn.Execute obj.StringValue
450 obj.Remove 1, obj.length
460 lSQLCount = 0
470 If cn.Errors.Count > 0 Then
480 Err.Raise -1, "ExecuteSynEx", cn.Errors.Item(0).Description
490 End If
500 End If
510 Next i
520 If lSQLCount > 0 Then
530 cn.Execute obj.StringValue
540 obj.Remove 1, obj.length
550 lSQLCount = 0
560 If cn.Errors.Count > 0 Then
570 Err.Raise -1, "ExecuteSynEx", cn.Errors.Item(0).Description
580 End If
590 End If
600 Set obj = Nothing
610 Set obj = CreateObject("KFOX.StringBuilder")
620 lSQLCount = 0
630 For i = LBound(strUpdSQL) To UBound(strUpdSQL)
640 strSQL = Trim(strUpdSQL(i))
650 If Len(strSQL) > 0 Then
660 lSQLCount = lSQLCount + 1
670 obj.Append strSQL
680 End If
690 If lSQLCount = 100 Then
700 cn.Execute obj.StringValue
710 obj.Remove 1, obj.length
720 lSQLCount = 0
730 If cn.Errors.Count > 0 T