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

原创 2004年09月22日 17:25:00
有存储过程:
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和存储过程中,参数定义的大小,最好一致!

 

asp操作有返回值的存储过程

'asp操作有返回值的存储过程 Set Cmd_Rs = Server.CreateObject("Adodb.Command") Set Cmd_Rs.ActiveConnection = Co...
  • sbt0198
  • sbt0198
  • 2013年04月08日 15:59
  • 1042

ASP调用存储过程:返回多个记录集的存储过程

  7. 返回多个记录集的存储过程  本文最先介绍的是返回记录集的存储过程。有时候,需要一个存储过程返回多个记录集,在ASP中,如何同时取得这些记录集呢?为了说明这一问题,在userinfo表中增加两...
  • kingwkb
  • kingwkb
  • 2006年08月04日 09:27
  • 3978

在ASP中使用存储过程

        学习使用存储过程(Stored Procedure),是ASP程序员的必须课之一。所有的大型数据库都支持存储过程,比如Oracle、MS SQL等,(但MS Access不支持,不过,...
  • feng19821209
  • feng19821209
  • 2005年08月22日 15:10
  • 1561

ASP.NET调用存储过程(带参数,三个返回值)+@ReturnValue

http://blog.sina.com.cn/s/blog_707a4cbf0100ualx.html sp.net中调用存储过程方法简单,功能强大。很好的使用存储过程,不但可以极...
  • passionboyxie
  • passionboyxie
  • 2014年11月11日 20:04
  • 1380

在asp中调用sql server的存储过程方法

在asp中调用sql server的存储过程可以加快程序运行速度   1.调用存储过程的一般方法   先假设在sql server中有一存储过程dt_users:   CREATE PROCED...
  • sscrazy
  • sscrazy
  • 2014年11月13日 16:01
  • 615

mybatis调存储过程返回输出参数

过程: --------------------- create or replace PROCEDURE PRO_RETURE_CURSOR(modelid varchar2,CUR OUT ...
  • ysxybyb
  • ysxybyb
  • 2017年01月12日 15:51
  • 510

使用SQL Server存储过程中的返回值的两种方法

//-----方法1CREATE PROC TEST1  @PA1 INT,  @PA2 INTAS  RETURN @PA1+@PA2GODECLARE @PA3 INTEXEC @PA3=TEST...
  • dracularking
  • dracularking
  • 2008年04月13日 09:23
  • 10042

演示了通过存储过程来获取某个字段的值,并对该字段值进行了判断

 表结构定义为USE [test]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[Students](    [I...
  • lllxy
  • lllxy
  • 2008年04月21日 15:14
  • 2086

myBatis调用存储过程返回两种类型的值--只返回一种的问题

这几天在写程序遇到了一个问题,我写了一个存储过程,这个存储过程在调用完成后,会返回两个值,一个执行状态(返回0或1,1代码成功),一个是返回使用或返还的金额。 但在调用执行后,始终只返回了一个执行状态...
  • ckinghan58
  • ckinghan58
  • 2017年03月22日 14:11
  • 135

调试带返回参数的存储过程注意事项

调试 带参存储过程,注意事项
  • handsome1234
  • handsome1234
  • 2016年02月11日 22:16
  • 594
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp中使用存储过程返回的值
举报原因:
原因补充:

(最多只允许输入30个字)