跪求一个asp带返回值的存储过程实例

表结构:IDUserIDDexMoney1name1男1000002name2男1000003name3男1000004name4男1234输入参数“ID”后得到相应的“... 表结构:
ID UserID Dex Money
1 name1 男 100000
2 name2 男 100000
3 name3 男 100000
4 name4 男 1234
输入参数“ID”后得到相应的“UserID”,"Sex”,"Money",显示到页面上。
SQL存储过程什么写?
ASP调用怎么写?
小弟是个初学者,在此万分感谢!!!
我好想说的不太明白,再详细说一下。
我想在调用存储过程程序里输入参数ID=4,然后存储过程返回ID=4的这条记录 姓名:name4、性别:男、存款:1234.
说白了就是用存储过程查找一条条件符合的记录然后显示出来
展开
 我来答
070iuns046
2011-08-25 · TA获得超过291个赞
知道答主
回答量:543
采纳率:0%
帮助的人:308万
展开全部
存储过程如下:
CREATE procedure [dbo].[sp_name]
@a_id bigint,
@a_name varchar(30),
@a_sex varchar(1),
@a_age int,
@v_flag int output
AS
SET NOCOUNT ON
update BB set name = @a_name
where id = @a_id
IF (@@ERROR <> 0)
set @v_flag = @@ERROR -- 发生了错误
ELSE
set @v_flag = 0 -- 成功

1、在ASP脚本里需要检查过程的返回值,如果是 -1,表示更新数据失败, 0=成功。
2、由于更新的只是一个表的数据,所以无所谓回滚。只要操作失败,肯定没有更新到数据库;成功才会更新。
3、存储过程的执行需要五个参数,分别为id、name、sex、age、flag。前面四个是传入参数,最后一个是传出,脚本只需要检测flag的返回值即可。 其SQL语句类似:
exec sp_name id, 'name', 'sex', age, flag
注意由于name、sex都是char类型,所以需要用引号引起来。
追问
这个也不对啊!!这是个修改记录功能,也没有调用过程。各位给个正确答案吧
百度网友669ab0c
2011-08-24 · 超过22用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:69.4万
展开全部
存储过程的调用,与执行普通的SQL语然没什么区别
存储过程一般也是通过记录集返回数据的;
CREATE PROCEDURE 存储过程名称 -- 相当于函数function GetInfo( id )
@ID int -- 过程的参数,多个时以,隔开
AS
BEGIN -- 开始 相当于{
SELECT UserId, Dex, Money
FROM 表名
WHERE ID = @ID;
END -- 结束 相当于}

调用方法:存程过程名称 参数1,参数2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
walkeryjn
2011-08-25 · 超过28用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:73.8万
展开全部
过程是:首先连接数据库,开库。
set conn=server.Creatobject("adodb.connetion")
conn.open(“driver=[SQL Server];server=127.0.0.1;database=表名;uid=用户名;pwd=密码”)
现在库就连接上啦 然后读数据库的表的内容存在rs里
set rs=Server.Creatobject("adodb.recordset")
rs.open "select * from 表名“,conn,1,1.
最后,输出读出的表内容。
response.write(rs("ID)) 或者response.write(rs("UserID"))什么的,想怎么输出就怎么输出啦.用个循环,然后rs.movenext 就可以 一直输出啦。
这个思路够清晰了吧,我这久也是在研究ASP。
共勉,加油~!
更多追问追答
追问
过程是对的 但是我想用存储过程实现这个过程!
追答
一样的嘛,html画个表单,用submit提交,用request("表单名")赋值给某个参数(x),然后这个参数传递给sql语句 sql=select * from 表名 where id=“&x&" 然后,也是一样的
set rs=Server.Creatobject("adodb.recordset")
rs.open sql,conn,1,1.
你要的查询结果就在rs里面咯。循环输出就完了嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
575yrms477
2011-08-25 · TA获得超过249个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:340万
展开全部
调用方法不对,你这样调用是没有返回值的。正确的作法是:
DIM MyComm : Set MyComm = Server.CreateObject("ADODB.Command")
with MyComm
.ActiveConnection = Conn
.CommandText = "addnews"
.CommandType = 4
.Prepared = true
.Parameters.append MyComm.CreateParameter("RETURN",2,4)
.Parameters.append MyComm.CreateParameter("@id",3,2,4,id)
.Parameters.append MyComm.CreateParameter("@oNEWS_Title",200,1,60,Otitle)
.Parameters.append MyComm.CreateParameter("),@oType",3,1,4,ONews_class)
.Parameters.append MyComm.CreateParameter("@oNEWS_Content",200,1,5000,Ocontent)
.Parameters.append MyComm.CreateParameter("@oHot",3,1,4,Ohot)
.Execute
end with

if MyComm(0)=1 then
A_ID=MyComm(1)
B_ID=MD5(A_ID)
sql="UPDATE WK_NEWS Set MD5_NEWS_ID='"&B_ID&"' WHERE News_id="&A_ID
conn.execute(Sql)'这一步其实也可以放到存储过程里面,或者用触发器更简单
end if
Set MyComm = Nothing

另外存储过程里面还要增加一个输出参数,修改如下:
CREATE PROCEDURE addnews

@id int output,
@oNEWS_Title char(60),
@oType int,
@oNEWS_Content ntext,
@oHot int

AS

insert WK_News (NEWS_Title,Type,NEWS_Date,NEWS_Content,Hot) values (@oNEWS_Title,@oType,getdate(),@oNEWS_Content,@oHot)
if @@error <> 0
begin
return -1
end

Select @id=@@identity
return 1

GO
追问
这个是添加一条数据,也没有体现出来调用时怎么读取存储过程返回值@id 啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式