Asp classic 参数对象定义不正确

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数据库)

以下是我在经典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)
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很可能不会有什么不同(当我使用一些示例值进行测试时没有),但为了安全起见,我还是会删除它们。