读取存储过程返回值出错

tankejin 2005-07-19 10:48:45
存储过程的大概写法如下:

set CmdSP = Server.CreateObject("ADODB.Command")
CmdSP.activeconnection=conn
CmdSP.CommandText = "insert_test"
CmdSP.commandtype=4

'其他的参数设置正常

CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adVarchar, adParamReturnValue, 50)

set res= CmdSP.execute

response.Write(CmdSP.Parameter("RETURN_VALUE").VALUE)

最后这句出错,错误信息:Microsoft VBScript 运行时错误 (0x800A01B6)
对象不支持此属性或方法: 'Parameter'
/procedure/procedure.asp, 第 36 行

奇怪了!!!
...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SkyYear2004 2006-01-16
  • 打赏
  • 举报
回复
adVarchar,adParamReturnValue 都没有报错,肯定已经加过 ADO 声明了。

return 只是返回 存储过程 是否正确执行的状态标志,
如果你要返回值的话,请通过存错过程参数返回,return 的值类型是 int

CREATE PROCEDURE insert_test
@aa char(50),
@bb char(50),
@cc char(50),
@retVal nvarchar(400) OUTPUT

AS
begin
...
end
发热鼠标垫 2006-01-15
  • 打赏
  • 举报
回复
可能没有引用adodb.inc文件。CmdSP.commandtype=4解释不了。要加<!--#include file="adovbs.inc" --> 试试。
tankejin 2005-07-20
  • 打赏
  • 举报
回复
还有一个问题:

我在存储过程中使用:
select @out =1
return @out
用CmdSP("RETURN_VALUE")可以正确的取到过程的返回值,

但是:
select @out ='字符串'
return @out
就不能正确的得到返回值,返回null,

何解??谢谢,解决结贴

lizhennehzil 2005-07-20
  • 打赏
  • 举报
回复
response.Write CmdSP("RETURN_VALUE")
tankejin 2005-07-20
  • 打赏
  • 举报
回复
按照楼上的方法仍然不行,是不是我调用有错误呢?

存储过程如下

CREATE PROCEDURE insert_test
@aa char(50),
@bb char(50),
@cc char(50)

AS
begin

declare @out char(50)
insert into test(aa,bb,cc) values (@aa,@bb,@cc)


select @out ='ok'

return @out
end
GO


asp中参数申明如下:

CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adVarchar, adParamReturnValue, 50)

输出如下:

if CmdSP("RETURN_VALUE")="" or isnull(CmdSP("RETURN_VALUE"))=true then
response.Write("null")
else
response.Write(CmdSP("RETURN_VALUE"))
end if

仍然输出NULL。
kingcrab 2005-07-20
  • 打赏
  • 举报
回复
该成set @out ='字符串'试试看
要不就用:
set nocount on
select @out ='字符串'

28,391

社区成员

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

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