vbs
1
2Set objCMD = CreateObject("ADODB.Command")
3objCMD.ActiveConnection = objADO
4objCMD.CommandText = strInsertSql
5objCMD.CommandType = 1
6
7Dim paramNum
8paramNum = 0
9
10objRs.MoveFirst
11
12Do Until objRs.EOF
13 Dim columnType
14 columnType = getColumnType(objRs.Fields("DATA_TYPE").Value)
15 Set param = objCMD.CreateParameter(paramNum, columnType, adParamInput, objRs.Fields("DATA_LENGTH").Value )
16
17'数字項目に文字が入っていた場合
18 If columnType = adNumeric And Not IsNumeric(Trim(aryCsvResult(paramNum))) And Not Trim(aryCsvResult(paramNum)) = "" Then
19
20 'error処理
21 objLogFile.WriteLine ("エラーメッセージ")
22 END_CODE = ERR_SQL
23 Exit Do
24 End If
25
26 If Trim(aryCsvResult(paramNum)) = "" Then
27 param.Value = null
28 Else
29 param.Value = aryCsvResult(paramNum)
30 End If
31 objCMD.Parameters.Append param
32 paramNum = paramNum + 1
33 objRs.MoveNext
34Loop
35
36Err.Number = 0
37objCMD.Execute()
38
39
原因を根絶できたわけではありませんが、どうもvbs側の問題ではないようで、結果としては上記の形で、数字項目に文字データが入っていた場合をIf文でピックアップして、処理するようにしました。