如何返回 存储过程 的错误??急!谢谢!
比如
我有一段代码
if exists(select * from member where id=@id)
begin
raiserror
('对不起,此邮箱已经在本网站注册过会员,请另选择邮箱或找回密码!',16,-1)
return
end
else
begin
insert into *********************
end
在asp里,如果 exists(select * from member where id=@id) 了,那么,我想得到上面那代码 我指定的错误 信息!并且 用 alert('') 显示出来
问题点数:10、回复次数:6Top
1 楼ice241018(力挽狂澜)回复于 2006-09-01 09:31:46 得分 10
在存储过程中设置一输出变量
如:@checklogin bit output
......
as
begin set @checklogin=0 '初始为0
if exists(select * from member where id=@id)
set @checklogin=1 '如果存在的就为1
........
在asp中调用:
set Comd=server.createobject("ADODB.Command")
call openDB()'打开数据库连接函数
set Comd.ActiveConnection= conn
Comd.CommandType=adCMdStoredProc
Comd.CommandText="存储过程名"
set Para1=Comd.CreateParameter("id",adVarChar,adParamInput,15)
set Para2=Comd.CreateParameter("checklogin", adBoolean,adParamOutput,1)
Comd.Parameters.Append Para1
Comd.Parameters.Append Para2
if Comd("checklogin")=1 then
response.write"<script language='javascript'>alert('已经注册');</script>"
end ifTop
2 楼qddoudouqd(初学者)回复于 2006-09-01 10:06:34 得分 0
set Para1=Comd.CreateParameter("id",adVarChar,adParamInput,15)
set Para2=Comd.CreateParameter("checklogin", adBoolean,adParamOutput,1)
这两个 最后面的 数值是 定义 字符长度吧,
int型的还得定义吗Top
3 楼qddoudouqd(初学者)回复于 2006-09-01 10:08:26 得分 0
Comd.CommandType=4
还有,这个
你写的是什么意思?
4代表什么意思?Top
4 楼qddoudouqd(初学者)回复于 2006-09-01 10:12:35 得分 0
set Para1=Comd.CreateParameter("id",adInt,adParamInput)
set Para2=Comd.CreateParameter("zhi", adInt,adParamOutput)
我这么写不会,呵呵,
应该怎么写?
说参数不正确或冲突Top
5 楼SmallBoy_z()回复于 2006-09-01 10:29:11 得分 0
adInt,adParamInput 是ADO预定义好的常量,可以在ASP中引用ADO的定义文件,也可以去VB中查下这几个参数的实际数值,如1,2,4,1024什么的。然后直接用数据代替这些参数。你问的Comd.CommandType=4也是这个意思。Top
6 楼ice241018(力挽狂澜)回复于 2006-09-01 12:11:17 得分 0
看一下存储过程的基本知识
很容易看懂
Top




