经典ASP -存储过程错误



我编写了一个存储过程("UpdateTable"),它接受一个参数,并在运行时将新行插入到表中。

我有一个asp页面以下代码:-

dim conn
dim cmd
set conn = server.createobject("ADODB.Connection")
conn.open "Provider=SQLNCLI11;Data Source=(localdb)Projects;Persist Security Info=False;Password=password;User ID=username;Initial Catalog=SQLLearning"
set cmd = server.createobject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandText = "UpdateTable"
cmd.CommandType =adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("Text",adVarChar,adParamInput, 100)
cmd("Text") = "Jessica"
cmd.Execute

当我运行这个时,我得到以下错误:-

ADODB。命令错误'800a0bb9'

实参类型错误、超出可接受范围或彼此冲突

/sp.asp,第14行

其中第14行为cmd.CommandType =adCmdStoredProc行。我尝试了很多事情,包括声明一个名为adCmdStoredProc的常量,其值为4,但这仍然不起作用。谁能给我指个正确的方向?

'UpdateTable'代码为:-

ALTER PROCEDURE UpdateTable
    @Text varchar(100)
AS
BEGIN
    SET NOCOUNT ON;
    INSERT INTO StoredProcTest (Text)
    OUTPUT inserted.ID, inserted.Text
    VALUES (@Text)
END
GO
Set cmd = Server.CreateObject("ADODB.Command")
    With cmd
        .ActiveConnection = conn
        .CommandType = adCmdStoredProc
        .CommandText = "UpdateTable"
        .Parameters.Append .CreateParameter("@Text",adVarChar,adParamInput, 100)
        .Parameters("@Text") = "Jessica"
        set rs = .Execute
    End With
set cmd = nothing

你应该能够得到类似于;

的结果
if not rs.eof then
    response.write rs("ID")
end if

最新更新