当我尝试插入大于10的参数时,vb6出现问题,下面的9很好。
当我尝试从'@ 1'到'@ 9'的时候,输出将是strsql ='1st value'...'9th value',但是当我使用10参数时,它将输出strsql ='@ 1 '...'@ 10'
Set rsOR = New ADODB.Recordset
strSql = SQLParams("DB..sp_Insert '@1','@2','@3','@4','@5','@6','@7','@8','@9','@10'", cbPayor.Text, "COLLECTION", txtORCol.Text, dtCol.Value, UserID, CollectionType, txtAmountCol.Text, "PHP", dtColCash.Value, txtCheque.Text)
clsSession.Execute strSql, rsOR
使用没有错误
'@1'...'@9'
FROM: strSql = SQLParams("DB..sp_Insert '@1',...,'@9'", cbPayor.Text, "COLLECTION")
输出:strsql "DB..sp_Insert 'text here',.... ,'COLLECTION'
使用错误
'@1'...'@10'
FROM: strSql = SQLParams("DB..sp_Insert '@1',...,'@10'", cbPayor.Text, "COLLECTION")
输出:strsql "DB..sp_Insert '@1'...'@10'
答案 0 :(得分:0)
经过一番谷歌搜索后,我发现了这一点(应该没有9个字段限制):
Dim strSQL As String
Dim cmd As New ADODB.Command
strSQL = "UPDATE MyTable SET " & vbNewLine _
& " NEEDS_ID = @NEEDS_ID, " & vbNewLine _
& " OBJ_ID = @OBJ_ID, " & vbNewLine _
& " OBJ_COMMENTS = @OBJ_COMMENTS, " & vbNewLine _
& " TIME21_ID = @TIME21_ID, " & vbNewLine _
& " WHERE ID = @WHEREID"
With cmd
.ActiveConnection = Cn
.CommandText = strSQL
.Parameters.Append .CreateParameter("@NEEDS_ID", adInteger, adParamInput, 2, 12)
.Parameters.Append .CreateParameter("@OBJ_ID", adInteger, adParamInput, 2, 23)
.Parameters.Append .CreateParameter("@OBJ_COMMENTS", adVarChar, adParamInput, 250, "Some text")
.Parameters.Append .CreateParameter("@TIME21_ID", adInteger, adParamInput, 2, 34)
.Parameters.Append .CreateParameter("@WHEREID", adInteger, adParamInput, 18, 456)
.Execute
End With