ASP调用存储过程参数问题

rolt 2000-06-30 11:11:00
这一段怎么回事?错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure 'AddComment1' expects parameter '@Manner', which was not supplied.

/postComment.asp, line 51

开始是说@Type有问题,我把iType和Manner调了个个,又说Manner有问题。谁换到后面谁有问题。

<!--#include file="const.inc"-->
<!--#INCLUDE VIRTUAL="/msadc/adcvbs.inc"-->
<%
dim con
dim cmd
dim rs
dim aTopic

Set con=Server.CreateObject("ADODB.Connection")
Con.Open INS_CONNECTIONSTRING

set cmd=Server.CreateObject("ADODB.Command")
'response.write (cmd is nothing)
cmd.ActiveConnection=Con
cmd.CommandText="AddComment1"
cmd.CommandType = 4 'AdCmdStoredProc

'3-adInteger
'4-adParamReturnValue
'1-adParamInput
'2-adParamOutput
'200-adVarchar

'command.CreateParameter (Name, Type, Direction, Size, Value)

cmd.Parameters.Append cmd.CreateParameter("ReturnCode",3,4)

cmd.Parameters.Append cmd.CreateParameter("TempUserID",3,1,4)
cmd.Parameters("TempUserID")=cint(Request( "TempUserID" ))

cmd.Parameters.Append cmd.CreateParameter("Url",200,1,4000)
cmd.Parameters("Url")=Request( "Url" )

cmd.Parameters.Append cmd.CreateParameter("Title",200,1,100)
cmd.Parameters("Title")=Request( "Title" )

cmd.Parameters.Append cmd.CreateParameter("Content",200,1,4000)
cmd.Parameters("Content")=Request( "Content" )

cmd.Parameters.Append cmd.CreateParameter("ParentID",3,1,4)
cmd.Parameters("ParentID")=cint(Request( "ParentID" ))

cmd.Parameters.Append cmd.CreateParameter("Type",3,1,4)
cmd.Parameters("Type")=Request( "iType" )

cmd.Parameters.Append cmd.CreateParameter("Manner",3,1,4)
cmd.Parameters("Manner")=Request( "Manner" )

cmd.Parameters.Append cmd.CreateParameter("CommentID",3,2,4) '输出参数

cmd.Execute '此行为出错行

。。。。以下略
...全文
163 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
willzzq 2000-07-02
  • 打赏
  • 举报
回复
我是这样做的没有写那么多代码。
首先在SQL Server中建立存储过程:(一个小例子)
Create Procedure ABCSP
@iID int
@cName char(10)
AS
select * from ATABLE where i_ID=@iID and c_Name=@cName

然后在ASP中调用
...
iID = Request.Form("...")
cName= Request.Form("...")
sql = "exec dbname.dbo.ABCSP where i_ID="&CStr(iID)&" and c_Name='"&cName&"'"
conn.Execute (sql)

OK






leslielu 2000-06-30
  • 打赏
  • 举报
回复
何苦?直接用
cmd.Parameters(1)=value
cmd.Parameters(2)=......
输出参数也一样,在用完.execute后相应的Parameters(n)会返回值。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧