本文主要是说明asp调用sql server存储过程的情况,支持给存储过程传入参数。带参数才能发挥存储过程的优势,让其更有效率。
比如一个论坛的查询,可以按作者和主题查询,则可建立如下存储过程:参数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
这样我们调用存储过程时只需将参数传递过去就行了:
'使用recordset对象的方法: set rs=server.createobject("adodb.recordset") sql="exec dt_bbs '"&keyword&"',"&choose&"" rs.open sql,conn,1,1 '使用command对象的方法: 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
青岛星网温馨提醒:使用存储过程时,一般要写那些支持参数的,无参数的存储过程个人觉得还不如不用。