天天看點

學會在ASP中使用存儲過程

引用位址:http://goaler.xicp.net/ShowLog.asp?ID=503

學習使用存儲過程(Stored Procedure),是ASP程式員的必須課之一。所有的大型資料庫都支援存儲過程,比如Oracle、MS SQL等,(但MS Access不支援,不過,在Access裡可以使用參數化的查詢)。

使用存儲過程有許多好處,它可以封裝複雜的資料邏輯,充分發揮大型資料庫本身的優勢。我們知道,ASP并不适合做複雜的資料運算,而通過OLD DB通路資料庫,由于資料需要在ASP和資料庫之間傳遞,相當消耗系統資源。事實上,如果資料庫僅僅起着資料存儲的作用,那麼它的功能是遠遠沒有得到利用的。

關于如何建立存儲過程,請參考MS SQL的相關文檔。

本文介紹存儲過程如何在ASP中運用。

簡單的一個SQL語句:

select ID,Name,Picture,Time,Duty from employ 

我們可以建立一個存儲過程:

CREATE PROCEDURE sp_employ

AS

Go

而SQL語句:

select ID,Name,Picture,Time,Duty from employ where ID=10230

對應的存儲過程是:(用Alter替換我們已有的存儲過程)

ALTER PROCEDURE sp_employ

@inID  int

select ID,Name,Picture,Time,Duty from employ  where ID=@inID

下面對比一下SQL和存儲過程在ASP中的情況。首先看看直接執行SQL的情況:

<%

dim Conn, strSQL, rs

set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open  "DSN=webData;uid=user;pwd=password" 

strSQL = " select ID,Name,Picture,Time,Duty from employ "

Set rs = Conn.Execute(strSQL) 

%> 

再看看如何執行Stored Procedure:

Conn.Open  "DSN=webData;uid=user;pwd=password" ’make connection

strSQL = "sp_employ"

而執行帶參數的Stored Procedure也是相當類似的:

dim Conn, strSQL, rs, myInt

myInt = 1 

Conn.Open  "DSN=webData;uid=user;pwd=password"

strSQL = "sp_myStoredProcedure " & myInt