Sql 在.asp中使用cmd execute并将varchar pasing到存储过程

Sql 在.asp中使用cmd execute并将varchar pasing到存储过程,sql,asp-classic,ado,Sql,Asp Classic,Ado,我试图在asp页面中使用cmd将值传递给存储过程,但我一直得到以下结果: 类型不匹配:“cint” /默认值/current/purchasing.asp,第512行 类别列是一个varchar。我想我必须传递数据类型。 如果我使用的是int列,我只使用int(sField\u PO) 如何传递varchar数据类型 set prmCategory=server.CreateObject(“ADODB.Parameter”) prmCategory.Name=“@Category” prmCat

我试图在asp页面中使用cmd将值传递给存储过程,但我一直得到以下结果:

类型不匹配:“cint”

/默认值/current/purchasing.asp,第512行

类别列是一个
varchar
。我想我必须传递数据类型。
如果我使用的是
int
列,我只使用
int(sField\u PO)

如何传递
varchar
数据类型

set prmCategory=server.CreateObject(“ADODB.Parameter”)
prmCategory.Name=“@Category”
prmCategory.Direction=1
prmCategory.Type=3'adVarChar
prmCategory.Value=(sField\u类别)
cmd.Parameters.append prmCategory
已经试过了吗

set objCmd = Server.CreateObject("ADODB.Command")
with objCmd
    .ActiveConnection   = MyConnection
    .CommandType        = 4 'adCmdStoredProc
    .CommandText        = "MY STORED PROCEDURE NAME"
    .Parameters.Append .CreateParameter("@Category", 200, 1, 255, sField_CATEGORY)
    .Execute
end with
set objCmd = nothing
如果包含类型库,则可以使用常量而不是数字

<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> 
set objCmd = Server.CreateObject("ADODB.Command")
with objCmd
    .ActiveConnection   = MyConnection
    .CommandType        = adCmdStoredProc
    .CommandText        = "MY STORED PROCEDURE NAME"
    .Parameters.Append .CreateParameter("@Category", adVarChar, adParamInput, 255, sField_CATEGORY)
    .Execute
end with
set objCmd = nothing

设置objCmd=Server.CreateObject(“ADODB.Command”)
使用objCmd
.ActiveConnection=MyConnection
.CommandType=adCmdStoredProc
.CommandText=“我的存储过程名称”
.Parameters.Append.CreateParameter(“@Category”,adVarChar,adParamInput,255,sField_Category)
.执行
以
设置objCmd=nothing

purchasing.asp的第512行是什么?
adVarChar
200
不是
3
。(使用ADOVBS.INC或ADO Typelib将允许按名称使用这些枚举值)速记
cmd.Parameters.Append cmd.CreateParameter(“@Category”,200,1,sField_Category)
第512行是prmCategory.Value=(sField_Category)这是现在的代码,下面是我得到的响应:set prmCategory=server.CreateObject(“ADODB.Parameter”)prmCategory.Name=“@Category”prmCategory.Direction=1 prmCategory.Type=200'adVarChar prmCategory.Value=(sField_CATEGORY)cmd.Parameters.Append prmCategoryParameter对象定义不正确。提供的信息不一致或不完整/default/current/purchasing.asp,第513行(即cmd.Parameters.append-linethanky-Silento..但如果我使用输入值,并且我有几个列要更新,我的工作方式就是这样的…代码如下..我必须发送几个不同的注释…dim cmd dim prmClient set cmd=server.CreateObject(“ADODB.Command”)cmd.ActiveConnection=db cmd.CommandType=4'adCmdStoredProc cmd.CommandText=“p_InfoSYNC\u Order\u Insert”设置prmClient=server.CreateObject(“ADODB.Parameter”)prmClient.Name=“@Client”prmClient.Direction=1'adParamInput prmClient.Type=3'adInteger prmClient.Value=1 cmd.Parameters.append prmClient set prmstore=server.CreateObject(“ADODB.Parameter”)prmstore.Name=“@Store”prmstore.Direction=1 prmstore.Type=3 prmstore.Value=cint(sField_Store)cmd.Parameters.append prmStoreset prmPO=server.CreateObject(“ADODB.Parameter”)prmPO.Name=“@PO”prmPO.Direction=1'adParamInput prmPO.Type=20 prmPO.Value=cint(sField\u PO)cmd.Parameters.append prmPO set prmCategory=server.CreateObject(“ADODB.Parameter”)prmCategory.Name=“@Category”prmCategory.Direction=1 prmCategory.Type=3 prmCategory.Value=2'(sField\u Category)cmd.Parameters.append prmItemCode.set prmItemCode=server.CreateObject(“ADODB.Parameter”)prmItemCode.Name=“@ItemCode”prmItemCode.Direction=1 prmItemCode.Type=3 prmItemCode.Value=3”(sField\u ItemCode)cmd.Parameters.append prmItemCode-prmDesc=server.CreateObject(“ADODB.Parameter”)prmDesc.Name=“@Desc”prmDesc.Direction=1 prmDesc.Type=3 prmDesc.Value=4'(sField_DESC)cmd.Parameters.append prmDesc set prmDistributor=server.CreateObject(“ADODB.Parameter”)prmDistributor.Name=“@Distributor”prmDistributor.Direction=1 prmDistributor.Type=3 prmDistributor.Value=5'(sField_DIST)cmd.Parameters.appendprmDistributor@BradJarrett:请把这些都写进你原来的问题里!