当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp调用存储过程

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 中的 asp调用存储过程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 219 ::
收藏到网摘: n/a

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
3.进一步讨论
比较上面我所说的两种在asp种调用存储过程的方法,
第一种方法需要对象少,但recordset对象支持的属性少了很多,比如说:rs.recordcount,rs.pagecount,rs.absolutepage这些属性
都不支持,所以用第一种方法就有局限,比如说要分页显示纪录时,就必须要用到第二种方法。
我们用sql server中的存储过程目的是为了加快速度,但一个存储过程中sql语句有很多时,它的优势特别明显。如果sql语句不是很多,
而我们用第二种方法就必须多创建一个command对象,可能还会减慢速度!所以我们要均衡各方面的利益来使用存储过程。
不过我觉得不过速度怎样,使用存储过程可以使程序更加模块化,便于修改,和调试(可以直接在sql server下调试,而不用在ie下看asp的结果)。