从ASP调用Mysql SP会产生错误

从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

当我尝试从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.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)
%>