回 帖 发 新 帖 刷新版面

主题:asp 存储过程问题,急需解决?

现在我正在学习用asp和sql server中的存储过程写程序.
但是我不知道存储过程的详细语法.特别是怎么样在存储过程中执行数据的添加,删除,修改操作.
还有就是应该怎么引用,现在我在网上找到一些,但是都不理想,太简单了.
有那位高手帮忙找些资料.小弟在这里先谢了[em2]

回复列表 (共5个回复)

沙发

1.调用存储过程的一般方法
先假设在sql server中有一存储过程dt_users:
CREATE PROCEDURE [dbo].[dt_users]
AS
select * from users
return
GO
第一种方法是不利用command对象,直接用recordset对象
set rs=server.createobject("adodb.recordset")
sql="exec dt_users"
rs.open sql,conn,1,1 这样就可
第二种方法是利用command对象
set comm=server.createobject("adodb.command")
comm.commantype=4
set comm.activeconnection=conn
comm.commandtext="dbo.dt_users"
set rs=server.createobject("adodb.recordset")
rs.open comm,,1,1
2.给存储过程传递参数
如果存储过程中不用参数,而是单一的sql语句,还显示不出调用存储过程的优势!
比如说一bbs的查询,可以按作者和主题查询!则可以建立存储过程如下:
参数keyword为关键字,choose是选择查询的方法。
CREATE PROCEDURE [dbo].[dt_bbs]
@keyword varchar(20)=null,
@choose int=null
as
if @choose=1
select * from bbs where name like @keyword
else
select * from bbs where subject like @keyword
return
go
这样我们调用存储过程时只需将参数传递过去就行了,而省去在asp中来写一段程序
用第一种方法:
set rs=server.createobject("adodb.recordset")
sql="exec dt_bbs '"&keyword&"',"&choose&""
rs.open sql,conn,1,1
用第二种方法:
set comm=server.createobject("adodb.command")
comm.commantype=4
comm.Parameters.append comm.CreateParameter("@keyword",adChar,adParamInput,50,keyword)
comm.Parameters.append comm.CreateParameter("@keyword",adInteger,adParamInput,,choose)
set comm.activeconnection=conn
comm.commandtext="dbo.dt_bbs"
set rs=server.createobject("adodb.recordset")
rs.CursorType=3
rs.open comm,,1,1

板凳

那能不能再说一下,用存储过程怎么样修改,删除,数据.
还有就是,调用存储过程的时候,用recordset快还是command快.
二个速度那个更快?

3 楼

CREATE PROCEDURE [dbo].[dt_users]
AS
select * from users
return
这是存储过程的格式 修改删除 只要把as后面的语句改成修改删除 相应的句子就可以了 如果带参数 可按照带参数的用法 修改 

command速度快

4 楼

呵呵.这个我只会做,不会说.
反正存储结构是个好东西/.我都是用来分页或大数据提取用的.
这样可以很好的提高速度.
对于小数记录读取.我就真接了,不用存储了.
因为速度快不了多少.就是提高了100%.
你说你对0.2秒和0.4秒会有感觉分别嘛.
当你等上好几秒时.你才会有感觉.
QQ:260776893

5 楼

我现在在开发一个大型的网站流量统计系统.我觉得这里应该可以用到存储过程.

我来回复

您尚未登录,请登录后再回复。点此登录或注册