注册 登录
编程论坛 ASP技术论坛

在ASP中如何调用该存储过程,并获取@iReturn 返回值?

kira007 发布于 2008-11-10 17:53, 891 次点击
-------------------------------------------------
---功能描述:验证用户登陆
---0,用户不存在
---1,密码错误
---2,成功
------------------------------------------------

CREATE  PROCEDURE UserLogin
@UserID nvarchar(50),
@UserPassword nvarchar(50)

as
    declare @iReturn int

    select * from WareUser where userid=@userid

  if(@@rowcount <1)

      begin-----------0
  set @iReturn=0
      end-------------0
  else
begin------------1
          select * from WareUser where userid=@userID and userpassword=@userpassword

          if(@@rowcount <1)
              begin-----------2
          set @iReturn=1
              end-------------2
          else

      begin-----------3
          set @iReturn=2
      end-------------3
end------------1
return @iReturn
GO
3 回复
#2
yms1232008-11-10 18:00
#3
hmhz2008-11-10 18:04
CREATE  PROCEDURE UserLogin
意思是创建一个存储过程,名字是 UserLogin

asp中调用这个名字
Set cmd = Server.CreateObject(")
with cmd
    .ActiveConnection = conn         '数据库连接字串
    .CommandText = "UserLogin"         '指定存储过程名
    .CommandType = 4          '表明这是一个存储过程
    .Prepared = true          '要求将SQL命令先行编译
    .Parameters.append .CreateParameter("@tableName",200,1,20,"表名")    '表名称
         ……
         ……
    .Execute
    records = cmd(7)
    pages = cmd(8)
    Set rs = .Execute
end with
#4
kira0072008-11-11 09:14
提示出错“ 过程 'UserLogin' 需要参数 '@iReturn',但未提供该参数。 ”
我把存储过程稍作修改,再调用,提示出错“  过程 'UserLogin' 需要参数 '@iReturn',但未提供该参数。  ”

CREATE  PROCEDURE UserLogin
@Tablename nvarchar(50),
@Username nvarchar(50),
@UserPassword nvarchar(50),
@iReturn int output

as
    select * from [@Tablename] where username=@Username

  if(@@rowcount <1)

      begin
  set @iReturn=0
      end
  else
begin
          select * from [@Tablename] where username=@username  and [password]=@UserPassword

          if(@@rowcount <1)
              begin
          set @iReturn=1
              end
          else

      begin
          set @iReturn=2
      end
end
GO
'====================================调用如下====================================================

<% dim action,username,password,Tablename,MyComm
action=Trim(Request.QueryString("action"))
if action="login" then

username=Trim(Request.Form("username"))
password=Trim(Request.Form("password"))
Tablename="Userlist"

Set MyComm = Server.CreateObject(")
with MyComm
    .ActiveConnection = conn

    .CommandText      = "UserLogin"
    .CommandType      = 4
    .Prepared        = true

    .Parameters.Append .CreateParameter("@Tablename",200,1,50,Tablename)
    .Parameters.Append .CreateParameter("@Username",200,1,50,username)
    .Parameters.Append .CreateParameter("@UserPassword ",200,1,50,password)
.Parameters.append .CreateParameter("@iReturn",3,1,4)
    .Execute
end with

loginvalue= MyComm(3)

'-------------------------------------------------
'---功能描述:验证用户登陆
'---0,用户不存在
'---1,密码错误
'---2,成功
'------------------------------------------------
select case  loginvalue
case 0
response.write" 用户不存在"
case 1
response.write" 密码错误"
case 2
response.write" 登陆成功"
end select
end if
%>
1