Asp classic 参数对象定义不正确
以下是我在经典ASP应用程序中的VBScript代码:Asp classic 参数对象定义不正确,asp-classic,vbscript,Asp Classic,Vbscript,以下是我在经典ASP应用程序中的VBScript代码: Set newParam = command.CreateParameter(Name, ParamType, 1) newParam.Value = Value command.Parameters.Append(newParam) command.Parameters(Name) = Value “追加”行始终中断,并出现以下错误: 命令是否具有有效的活动连接或连接是否打开(连接到Oracle数据库)
Set newParam = command.CreateParameter(Name, ParamType, 1)
newParam.Value = Value
command.Parameters.Append(newParam)
command.Parameters(Name) = Value
“追加”行始终中断,并出现以下错误:
命令是否具有有效的活动连接或连接是否打开(连接到Oracle数据库)似乎没有区别
“名称”、“参数类型”和“值”参数值正确
少了什么?或者可能是错的
谢谢从
追加
指令中删除括号。在此上下文中,它们的含义是“按值传递参数”,而不是“参数列表”(请参阅)。同时将值赋值放在参数赋值之后
Set newParam = command.CreateParameter(Name, ParamType, 1)
command.Parameters.Append newParam
newParam.Value = Value
您是否仍然收到
Append
指令的错误?如果是这样,则说明您的名称
或参数类型
有问题。不需要第二行(newParam.Value=Value)参数类型的值到底是多少?您没有指定所选数据类型可能需要的大小。您是否考虑过使用command.Parameters.Append
而不是command.Parameters.Refresh
?这可能会为您节省很多精力。我将研究另外两件事:1)我看到许多调试器(VS2008)报告一行错误。例如,尝试验证这是否是错误行,而不是CreateParameter.,以及2)如果您在范围内使用常量,那么这是否是param type的常量?在调用Subs时删除括号通常是一个很好的建议,但我不确定这在这里会有什么不同。无论您是否通过参数ByVal或ByRef,它仍然是对同一参数对象的引用。@CheranShunmugavel很可能不会有什么不同(当我使用一些示例值进行测试时没有),但为了安全起见,我还是会删除它们。