由于DB2数据库的结构和字段与sqlserver中的不太一样,我需要先从DB2中读出记录集,再往一行一行处理往sqlserver中插。
我在vb中这样写的
Screen.MousePointer = vbHourglass
On Error GoTo catcherror:
Dim TableDate As String
Dim input_date As String
Dim strSQL As String
Dim strTemp As String
Dim strtemp1 As StringDim rseATM As New ADODB.RecordsetDim Record_id As Integer
'新建L表
TableDate = Format(DTPicker1.Value, "YYMMDD")
input_date = Format(Now, "YYYYMMDD")
If envGCSettle.CnnLDB.State = adStateClosed Then
       envGCSettle.CnnLDB.Open
End If
strSQL = "exec up_Main_Create_LTable '" & TableDate & "'"
    envGCSettle.CnnLDB.Execute (strSQL)
envGCSettle.CnnLDB.Close'取得db2库中的记录集
If envGCSettle.CnnecqfDB.State = adStateClosed Then
       envGCSettle.CnnecqfDB.Open
End If
strSQL = "Select * from PPQF_QD.TBL_LOG_ATM_SETTLE_DTL"
Set rseATM = envGCSettle.CnnecqfDB.Execute(strSQL)
Record_id = 1
rseATM.GetRowsDo While Not rseATM.EOF    strTemp = " (Record_id,input_date,Tran_acc,Log_from_sw)"
    strtemp1 = "(" & "'" & Record_id & "',"
    strtemp1 = strtemp1 & "'" & input_date & "',"
    strtemp1 = strtemp1 & "'" & Mid(rseATM!pri_acct_no, 3, 21) & "',"
    strtemp1 = strtemp1 & "'" & "ESW2" & "')"
    
   
    strSQL = "INSERT INTO " + " L" + TableDate + strTemp + " VALUES" + strtemp1
    
       If envGCSettle.CnnLDB.State = adStateClosed Then
          envGCSettle.CnnLDB.Open
       End If
       envGCSettle.CnnLDB.Execute (strSQL)
       Record_id = Record_id + 1
rseATM.MoveNext
LoopScreen.MousePointer = vbDefault
Exit Sub
catcherror:
    Debug.Print err.Description
    strMessage = "db2转至sqlserver库失败!"
    strMessage = strMessage & Space(50 - Len(strMessage))
    MsgBox strMessage, vbInformation + vbOKOnly, "提示"
    error_code = True
End Sub但是我发现在取db2库中的记录集时,只能取32767行。是不是哪设的不对,还是有别的更好的办法。请
大家帮忙看看,谢谢