CSDN博客

img YangYuWeb

asp中使用存储过程返回的值

发表于2004/9/22 17:25:00  710人阅读

有存储过程:
CREATE  PROCEDURE scturs 
@acco varchar(20),
@usrid int output,
@usracco varchar output,
@usrpwd varchar output
 AS
select usr_id, usr_acco, usr_pwd  from user where usr_acco=@Acco
return
GO


asp文件中的代码:
<%
set cmd=server.createobject("ADODB.Command")
	cmd.ActiveConnection = Application("dbstr")
	cmd.CommandType = 4
	cmd.CommandText = "scturs"
	cmd.Parameters.Refresh
	cmd.Parameters("@acco")="abc"
	cmd.Execute
	chk=cmd.Parameters(0) '如何取回值
set cmd=nothing
	response.write chk  '显示结果
%>

需要返回的结果应该是:
usrid:1
usracco:abc
usrpwd:abc1


如果存储过程中的select中的条件去掉,那查询到的结果将是很多用户的记录集,这里又将用什么办法来显示所有的记录呢?

回复人: zjcxc(邹建) ( ) 信誉:349 2004-7-21 9:39:47 得分:0
 
<%
set cmd=server.createobject("ADODB.Command")
	cmd.ActiveConnection = Application("dbstr")
	cmd.CommandType = 4
	cmd.CommandText = "scturs"
	cmd.Parameters.Refresh
	cmd.Parameters("@acco")="abc"
	cmd.Execute

	usrid=cmd.Parameters("@usrid") '如何取回值
	usracco=cmd.Parameters("@usracco") '如何取回值
	usrpwd=cmd.Parameters("@usrpwd") '如何取回值
set cmd=nothing
	response.write chk  '显示结果
%>

Top
回复人: zjcxc(邹建) ( ) 信誉:349 2004-7-21 9:40:49 得分:0
 
chk=cmd.Parameters(0)  '这个是取存储过程中,通过 return 语句返回的值
对于输出参数的返回值,应该直接取对应输出参数,即:
usrid=cmd.Parameters("@usrid")


Top
回复人: sweiquan(青石子) ( ) 信誉:100 2004-7-21 10:08:25 得分:0
 
奇怪了,
usrid=cmd.Parameters("@usrid")取不到值,数据表中数据是应该有的
也没有报错



Top
回复人: zjcxc(邹建) ( ) 信誉:349 2004-7-21 10:43:56 得分:0
 
--没有注意,你的存储过程没有写对

CREATE  PROCEDURE scturs 
@acco varchar(20),
@usrid int output,
@usracco varchar output,
@usrpwd varchar output
AS
select @usrid=usr_id,@usracco=usr_acco,@usrpwd=usr_pwd  
from [user]
where usr_acco=@Acco
GO

Top
回复人: sweiquan(青石子) ( ) 信誉:100 2004-7-21 13:19:09 得分:0
 
谢谢!
我以前没有在asp使用过存储,所以很基础的东西都不会!

我已经修改了存储过程,能取到值,但有问题的是,仅取到第一个字符
结果:
usrid:1
usracco:a
usrpwd:a

这又是怎么回事呀?再麻烦你了。

Top
回复人: zjcxc(邹建) ( ) 信誉:349 2004-7-21 13:23:21 得分:90
 
CREATE  PROCEDURE scturs 
@acco varchar(20),
@usrid int output,
@usracco varchar(50) output,  --这里的大小根据你表中对应字段的定义,下面的也一样
@usrpwd varchar(50) output
AS
select @usrid=usr_id,@usracco=usr_acco,@usrpwd=usr_pwd  
from [user]
where usr_acco=@Acco
GO


Top
回复人: skyboy0720(飞) ( ) 信誉:100 2004-7-21 13:26:46 得分:10
 
在ASP和存储过程中,参数定义的大小,最好一致!

 

0 0

相关博文

我的热门文章

img
取 消
img