很多朋友學ASP以後,只會簡單的SELECT、UPDATE、DELETE幾個基本指令。這樣在讀取或存入資料的時候,就大大降低的系統運作的速度。 sql
複製代碼代碼如下:
CREATE PROCEDURE Proname //使用CREATE PROCEDURE 建立預存程序Proname為預存程序名稱
@Lname VARCHAR(30) //定義傳入的參數
AS
SET NOCOUNT ON
BEGIN
SELECT * FROM TableName WHERE Lname like '%'+@Lname+'%' //使用SELECE模糊查詢Lname值與傳入參數Lname的值相近所有行
END
GO
以上就是已經建立了一個帶有一個輸入參數的預存過程,並且傳回所有查詢的記過集。
下面就開始使用ASP來操作這個預存程序。
複製代碼代碼如下:
//下面是建立與MSSQL SERVER連接的字串,大家都知道,我就不講了。
strConnect = Driver={SQL Server};Server=(local);uid=sa;password=;database=dataname
Set conn = server.CreateObject (Adodb.Connection)
conn.Open strConnect
SET cmd = Server.CreateObject(ADODB.Command) //建立一個COMMAND命令對象
with cmd
cmd.ActiveConnection = conn //conn為連接字串
cmd.CommandText = Proname //這裡要使用的預存程序名稱
cmd.CommandType = 4 //CommandType屬性顯示請求的類型。
//-1 表示CommandText參數的類型無法確定
//1 表示CommandText是一般的命令類型
//2 表示CommandText參數是一個存在的表名稱
//4 表示CommandText參數是一個預存程序的名稱,所以這裡CommandType = 4。
cmd.Prepared = true //要求將SQL指令先編譯
cmd.Parameters.append cmd.CreateParameter(@Lname,3,1,4,Lname) //新增參數@Lname,後面的Lname是自己在ASP頁面定義的變數。
Set rs = cmd.Execute //設定rs變數取得傳回的查詢紀錄集。
end with
DO WHILE NOT rs.EOF //用DO迴圈讀出rs紀錄集裡面的行
RESPONSE.WRITE(rs(字段名)<BR />)
rs.MOVENEXT //移動到下一條
LOOP //結束循環
rs.CLOSE //關閉對象