从ASP调用Mysql SP会产生错误
当我尝试从classic ASP调用MySql存储过程时,出现以下错误: 例程SPADDContactSeMail的OUT或INOUT参数5在BEFORE触发器中不是变量或新的伪变量 以下是SP(我可以从Mysql工作台成功调用它): 以下是ASP代码:从ASP调用Mysql SP会产生错误,mysql,vbscript,asp-classic,Mysql,Vbscript,Asp Classic,当我尝试从classic ASP调用MySql存储过程时,出现以下错误: 例程SPADDContactSeMail的OUT或INOUT参数5在BEFORE触发器中不是变量或新的伪变量 以下是SP(我可以从Mysql工作台成功调用它): 以下是ASP代码: Dim con Dim cmd Set con = Server.CreateObject("ADODB.Connection") con.Open "connection string" Set cmd = Server.CreateO
Dim con
Dim cmd
Set con = Server.CreateObject("ADODB.Connection")
con.Open "connection string"
Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = con
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "spAddContactUsEmail"
cmd.Parameters.Append cmd.CreateParameter("vcName", adVarChar, adParamInput, 50, "John Doe")
cmd.Parameters.Append cmd.CreateParameter("vcPhone", adVarChar, adParamInput, 50, "333-4444")
cmd.Parameters.Append cmd.CreateParameter("vcEmail", adVarChar, adParamInput, 50, "test@yahoo.com")
cmd.Parameters.Append cmd.CreateParameter("txtComments", adLongVarChar, adParamInput, Len("hey"), "hey")
cmd.Parameters.Append cmd.CreateParameter("intNewID", adInteger, adParamReturnValue)
cmd.Execute
错误发生在cmd.Execute行。提前感谢。将adParamReturnValue更改为adParamOutput:
<%
cmd.Parameters.Append cmd.CreateParameter("intNewID", adInteger, adParamOutput, 4)
%>
包含执行方法返回的错误消息详细信息。错误消息为:-2147467259[MySQL][ODBC 5.1驱动程序][mysqld-5.7.17-log]例程SPADDContactSeMail的OUT或INOUT参数5在BEFORE TRIGGER中不是一个变量或新的伪变量,似乎您需要使用adParamOutput
在此处设置输出参数:cmd.Parameters.Append cmd.CreateParameter(“intNewID”、adInteger、adParamOutput、adParamReturnValue)
。我做了您提到的更改,但仍然出现相同的错误。正在使用哪个版本的MySQL ODBC驱动程序?一些早期的驱动程序可能不支持OUT
参数,在这种情况下,您需要使用cmd.CommandText=“CALL spAddContactUsEmail(@vcName,,@intNewID)”
然后使用相同的连接执行选择@intNewID
(只需更改命令文本)。
<%
cmd.Parameters.Append cmd.CreateParameter("intNewID", adInteger, adParamOutput, 4)
%>