首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

关于存储过程的有关问题,请各位帮帮忙

2012-02-24 
关于存储过程的问题,请各位帮帮忙有存储过程如下:createproceduredbo.hy_user_insert@usernamevarChar(50)

关于存储过程的问题,请各位帮帮忙
有存储过程如下:
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是关闭的,为什么呢?
简单的说就是问不用游标的情况下怎么让存储过程插入记录并返回结果集

[解决办法]
关注
不过既然是response.write rs.eof '这里显示true
那肯定是出错
------解决方案--------------------


asp 刚学 不太会 呵呵
[解决办法]
我现在调试的结果是第一次执行会提示“对象关闭时,不允许操作”的错误,
第二次则是想要的正常的结果,即提示“已存在相同名称的用户,请使用其他用户名”
说明第一新增记录的操作已经成功,但查询的记录集没有返回。
既然在查询分析器里有返回,那应该是记录集调用方法不对。
再研究研究看。
[解决办法]
up
[解决办法]
我也遇到过,后来好象在as后面
加一句
set nocount on
begin
.......
end
就可以了
还有加上一个大的

[解决办法]
rs.open "exec hy_user_insert 'test ', 'test ',... ",1,3

热点排行