日期:2014-05-17  浏览次数:20840 次

关于存储过程的问题,请各位帮帮忙
有存储过程如下:
create   procedure   dbo.hy_user_insert
                  @username   varChar(50),--用户名
@userpassword   varchar(50),--用户密码
......    
AS
begin  

if   exists(select   id   from   hy_user   where   username=@username)  
      begin
select   0   as   result
      end

else
begin

INSERT   into   hy_user(
                                                      [username],--用户名
[userpassword],--用户密码
......

)   VALUES(
                                                        @username,--用户名
                                                        @userpassword,
......
)
DECLARE   @intnewid   int
DECLARE   @userid_   varchar(10)

set   @intnewid=SCOPE_IDENTITY()

set   @userid_=CAST(@intnewid   AS   VARCHAR(10))

WHILE   len(@userid_) <10--生成自编号
set   @userid_= '0 '+@userid_

update   hy_user   set   userid=@userid_   where   [id]=@intnewid
select   u.*,1   as   result   from   hy_user   where     [id]=@intnewid
end
end
=======================================
在查询分析器里面输入:
exec   hy_user_insert   'test ', 'test ',...
可以返回结果
=======================================
在ASP中不能返回结果
代码:
=======================================
set   objCmd=Server.CreateObject( "Adodb.Command ")  
objCmd.ActiveConnection=conn
objCmd.CommandText= "hy_user_insert "   '指定存储过程名称

objCmd.NamedParameters   =   true  

objCmd.CommandType=adCmdStoredProc   '其为Stored   Procedure  
'-----准备stored   procedure   的参数-------
objCmd.Parameters.Append   objCmd.CreateParameter( "@username ",adVarchar,adParamInput,50,username   )  

objCmd.Parameters.Append   objCmd.CreateParameter( "@userpassword ",adVarchar,adParamInput,50,md5(password))

.......

'-----执行存储过程----------------------  
set   rs=server.CreateObject( "adodb.recordset ")

rs.open   objCmd,,0,1
response.write   rs.eof   '这里显示true
result=rs( "result ")     '这里出错,找不到字段
rs.close
set   rs=nothing
set   objCmd=nothing
CloseConn()

if   result=0   then   response.Write   " <script   language= 'javascript '> alert( '已存在相同名称的用户,请使用其他用户名。 ');history.go(-2); </script> ":response.End()
=======================================================
我想使用存储过程插入记录并返回新插入的记录
为什么我不能得到返回的结果?返回的rs是关闭的,为什么呢?
简单的说就是问不用游标的情况下怎么让存储过程插入记录并返回结果集

------解决方案--------------------
关注
不过既然是respons