If Not rsLotID.EOF Then rsLotID.MoveFirst Do While Not rsLotID.EOF sql = " insert into wtpnlm(ENTITYID,PNLID,PNLGRADE,PNLLEVEL,HIDEFLG,MOVEFLG,CARTID,FABID) " sql = sql & " VALUES(" & kk(rsLotID.Fields("LotID").Value) & "," & kk(rsLotID.Fields("PanelID").Value) & "," & kk(rsLotID.Fields("panelgrade").Value) & "," & kk(rsLotID.Fields("panellevel").Value) & ",'0','0'," & kk(rsLotID.Fields("cartonid").Value) & "," & kk(G_Fac) & ") " cltSQL.add sql rsLotID.MoveNext Loop If cltSQL.Count > 0 Then blnSqlOK = True DEDW.cnWIP.BeginTrans For i = 1 To cltSQL.Count ' Call SQLExec(cltSQL.Item(i), DEDW.cnWIP) If SQLExec(cltSQL.Item(i), DEDW.cnWIP) = False Then blnSqlOK = False DEDW.cnWIP.RollbackTrans Set cltSQL = Nothing MsgBox "插入失敗,請重新作業!!!!", vbInformation, "訊息示窗" Exit For End If Next i If blnSqlOK = True Then DEDW.cnWIP.CommitTrans Set cltSQL = Nothing MsgBox "插入成功!!!", vbInformation, "訊息示窗"
'sqlupwt = " update wtltm set unittraceflg='A' where tolotid=" & kk(TxtLotID.Text) & " and hideflg='0' and trackflg='1' and fabid='7'" sqlupwt = " update wtltm set unittraceflg='A' where tolotid=" & kk(TxtLotID.Text) & " and hideflg='0' and trackflg='1' and fabid=" & kk(G_Fac) & "" Call SQLExec(sqlupwt, DEDW.cnWIP) If SQLExec(sqlupwt, DEDW.cnWIP) = True Then MsgBox "修改成功!!!", vbInformation, "訊息示窗"
ElseIf SQLExec(sqlupwt, DEDW.cnWIP) = False Then MsgBox "修改失敗!!!", vbInformation, "訊息示窗" End If End If End If Else MsgBox "輸入的行數不對!!!", vbInformation, "警告" Exit Sub End If
用Oracle 提供的0040对象(oracle objects for OLE), 创建参数数组,可以批量提交。速度很快.
不insert 又能怎么办呢?不过应该可以使用批更新模式,insert完后再updatebatch
Do While Not rsLotID.EOF
sql = " insert into wtpnlm(ENTITYID,PNLID,PNLGRADE,PNLLEVEL,HIDEFLG,MOVEFLG,CARTID,FABID) "
sql = sql & " VALUES(" & kk(rsLotID.Fields("LotID").Value) & "," & kk(rsLotID.Fields("PanelID").Value) & "," & kk(rsLotID.Fields("panelgrade").Value) & "," & kk(rsLotID.Fields("panellevel").Value) & ",'0','0'," & kk(rsLotID.Fields("cartonid").Value) & "," & kk(G_Fac) & ") "
cltSQL.add sql
rsLotID.MoveNext
Loop
If cltSQL.Count > 0 Then
blnSqlOK = True
DEDW.cnWIP.BeginTrans
For i = 1 To cltSQL.Count
' Call SQLExec(cltSQL.Item(i), DEDW.cnWIP)
If SQLExec(cltSQL.Item(i), DEDW.cnWIP) = False Then
blnSqlOK = False
DEDW.cnWIP.RollbackTrans
Set cltSQL = Nothing
MsgBox "插入失敗,請重新作業!!!!", vbInformation, "訊息示窗"
Exit For
End If
Next i
If blnSqlOK = True Then
DEDW.cnWIP.CommitTrans
Set cltSQL = Nothing
MsgBox "插入成功!!!", vbInformation, "訊息示窗"
'sqlupwt = " update wtltm set unittraceflg='A' where tolotid=" & kk(TxtLotID.Text) & " and hideflg='0' and trackflg='1' and fabid='7'"
sqlupwt = " update wtltm set unittraceflg='A' where tolotid=" & kk(TxtLotID.Text) & " and hideflg='0' and trackflg='1' and fabid=" & kk(G_Fac) & ""
Call SQLExec(sqlupwt, DEDW.cnWIP)
If SQLExec(sqlupwt, DEDW.cnWIP) = True Then
MsgBox "修改成功!!!", vbInformation, "訊息示窗"
ElseIf SQLExec(sqlupwt, DEDW.cnWIP) = False Then
MsgBox "修改失敗!!!", vbInformation, "訊息示窗"
End If
End If
End If
Else
MsgBox "輸入的行數不對!!!", vbInformation, "警告"
Exit Sub
End If
用Oracle 提供的0040对象(oracle objects for OLE),
创建参数数组,可以批量提交。速度很快.