Stored procedures 经典ASP-ADO执行存储过程传入参数

Stored procedures 经典ASP-ADO执行存储过程传入参数,stored-procedures,asp-classic,ado,Stored Procedures,Asp Classic,Ado,我需要通过经典ASP将参数传递到存储过程中。我确实看到一些人在使用命令对象,而另一些人没有使用它 我的存储过程参数如下所示: @RECORD\u数字十进制(18,0), @错误类型nvarchar(100), @保险代码smallint, @国际公司, @INS_ID_NUM nchar(22) 然后我试着这样做: Dim conn,rsSet,rsString,cmd 尺寸RN、ET、IC、CI、IIN RN=申请表(“记录编号”) ET=请求表(“错误类型”) IC=申请表(“保险代码”)

我需要通过经典ASP将参数传递到存储过程中。我确实看到一些人在使用命令对象,而另一些人没有使用它

我的存储过程参数如下所示:

@RECORD\u数字十进制(18,0),
@错误类型nvarchar(100),
@保险代码smallint,
@国际公司,
@INS_ID_NUM nchar(22)
然后我试着这样做:

Dim conn,rsSet,rsString,cmd
尺寸RN、ET、IC、CI、IIN
RN=申请表(“记录编号”)
ET=请求表(“错误类型”)
IC=申请表(“保险代码”)
CI=申请表(“公司ID”)
IIN=请求表(“INS\U ID\U NUM”)
set conn=server.CreateObject(“adodb.connection”)
set rsSet=Server.CreateObject(“ADODB.Recordset”)
连接开放应用程序(“连接实用程序连接字符串”)
rs_string=“apUpdateBill”&RN&“,”ET&“,”IC&“,”CI&“,”IIN&“
rsSet.打开rsString、conn、adOpenForwardOnly、adCmdText
(我不需要记录集,我只是想让它发送数据)

错误:
ADODB.记录集错误“800a0bb9”
参数类型错误、超出可接受范围或相互冲突

我尝试过命令的东西,但我得到了“精确”的错误 我是否“必须”使用命令对象

e、 g

Set cmd=Server.CreateObject(“ADODB.Command”)
'设置cmd.ActiveConnection=conn
'cmd.CommandText=“apUpdateBill”
'cmd.CommandType=adCmdStoredProc
'Cmd.Parameters.append Cmd.createParameter(@Record_Number),adDecimal,adParamInput,18)
'Cmd.Parameters(“@Record_Number”)。精度=0
'Cmd.Parameters(“@Record\u Number”).value=Request.Form(“Record\u Number”)

以下是您的操作方法,您不需要创建记录集对象,因为它是一个更新存储过程:

”设置连接
'...............
'设置命令
DIM命令
SET cmd=Server.CreateObject(“ADODB.Command”)
设置cmd.ActiveConnection=Conn
'准备存储过程
cmd.CommandText=“apUpdateBill”
cmd.CommandType=4'adCmdStoredProc
cmd.Parameters(“@RECORD\u NUMBER”)=Request.Form(“RECORD\u NUMBER”)
cmd.Parameters(“@ErrorType”)=Request.Form(“ErrorType”)
cmd.Parameters(“@INSURANCE\u CODE”)=Request.Form(“INSURANCE\u CODE”)
cmd.Parameters(“@CompanyId”)=Request.Form(“CompanyId”)
cmd.Parameters(“@INS\u ID\u NUM”)=Request.Form(“INS\u ID\u NUM”)
'执行存储过程
'这将返回记录集,但您不需要它
cmd.Execute
康涅狄格州关闭
设置连接=无

Cha-Ching。你升职了!!好的,但是为什么人们要做所有的Cmd.Parameters.append Cmd.createParameter(“@Record\u Number”,adDecimal,adParamInput,18)?为了好玩?为了精确控制?多痛苦啊……哈哈,我不知道为什么我相信有些人更喜欢直言不讳。即使是在ASP.NET中,我也更喜欢由ADO来确定数据类型,因为数据类型较少errorprone@user3183930你知道有一种更简单的方法来实现这个
调用cmd.Execute(、数组(Request.Form(“Record\u Number”)、Request.Form(“ErrorType”)、Request.Form(“INSURANCE\u code”)、Request.Form(“CompanyID”)、Request.Form(“INS\u ID\u NUM”))
就我个人而言,我更喜欢
.Parameter.Append(.CreateParameter(
方法)。您,先生(meda)…是个救生员!谢谢!