熱門標簽:鎮(zhèn)江云外呼系統(tǒng)怎么樣客服外呼系統(tǒng)呼叫中心vue 地圖標注拖拽保定電銷機器人軟件自動外呼系統(tǒng)怎么防止封卡電話機器人銷售公司嗎電話機器人案例土地證宗地圖標注符號成都銷售外呼系統(tǒng)公司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.給存儲過程傳遞參數(shù) 如果存儲過程中不用參數(shù),而是單一的sql語句,還顯示不出調用存儲過程的優(yōu)勢! 比如說一bbs的查詢,可以按作者和主題查詢!則可以建立存儲過程如下: 參數(shù)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 這樣我們調用存儲過程時只需將參數(shù)傳遞過去就行了,而省去在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語句有很多時,它的優(yōu)勢特別明顯。如果sql語句不是很多, 而我們用第二種方法就必須多創(chuàng)建一個command對象,可能還會減慢速度!所以我們要均衡各方面的利益來使用存儲過程。 不過我覺得不過速度怎樣,使用存儲過程可以使程序更加模塊化,便于修改,和調試(可以直接在sql server下調試,而不用在ie下看asp的結果)。