我正在尝试设置一个宏,该宏可以调用SQL来执行存储过程,但是在运行它时会不断收到is消息。我可以通过SSMS中的SQL查询执行存储过程。有什么想法吗?
错误: “应用程序为当前操作使用了错误类型的值。”在22号线的位置0
代码
Const adParamInput = &H0001
Const adVarChar = 200
Dim strServerName
Dim strDatabase
Dim strUserName
Dim strPassword
strServerName="5.5.5.5"
strDatabase="MYDB"
strUserName="DBUSER"
strPassword="DBPASS"
strcnn="Driver={SQL Server};Server=" & strServerName & ";Database=" & strDatabase & ";Uid=" & strUsername & ";Pwd=" & strPassword & ";"
Set Conn = CreateObject("ADODB.Connection")
conn.open strcnn
Set Cmd = CreateObject("ADODB.Command")
Cmd.ActiveConnection = conn
' Set up the parameter for our Stored Procedure *** watch the line wrap ***
Cmd.Parameters.Append Cmd.CreateParameter("I_PartID", adVarChar, adParamInput , 30, "E N T E R Y O U R P A R T I D")
Cmd.CommandText = "SP_UpdateUDF"
Cmd.Execute
答案 0 :(得分:0)
您正在创建长度为30的adVarchar
类型的参数,但传递的是长度为38的字符串。错误消息有点误导,实际上它抱怨长度。
如果您的Proc期望最多30个字符,请缩短您的字符串。否则,您可以通过
解决问题Const pVal = "E N T E R Y O U R P A R T I D"
cmd.Parameters.Append cmd.CreateParameter("I_PartID", adVarChar, adParamInput, Len(pVal), pVal)