學(xué)會(huì)在ASP中使用存儲(chǔ)過(guò)程
發(fā)表時(shí)間:2024-02-02 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]學(xué)習(xí)使用存儲(chǔ)過(guò)程(Stored Procedure),是ASP程序員的必須課之一。所有的大型數(shù)據(jù)庫(kù)都支持存儲(chǔ)過(guò)程,比如Oracle、MS SQL等,(但MS Access不支持,不過(guò),在Access里可以使用參數(shù)化的查詢(xún))。使用存儲(chǔ)過(guò)程有許多好處,它可以封裝復(fù)雜的數(shù)據(jù)邏輯,充分發(fā)揮大型數(shù)據(jù)庫(kù)本身的...
學(xué)習(xí)使用存儲(chǔ)過(guò)程(Stored Procedure),是ASP程序員的必須課之一。所有的大型數(shù)據(jù)庫(kù)都支持存儲(chǔ)過(guò)程,比如Oracle、MS SQL等,(但MS Access不支持,不過(guò),在Access里可以使用參數(shù)化的查詢(xún))。
使用存儲(chǔ)過(guò)程有許多好處,它可以封裝復(fù)雜的數(shù)據(jù)邏輯,充分發(fā)揮大型數(shù)據(jù)庫(kù)本身的優(yōu)勢(shì)。我們知道,ASP并不適合做復(fù)雜的數(shù)據(jù)運(yùn)算,而通過(guò)OLD DB訪問(wèn)數(shù)據(jù)庫(kù),由于數(shù)據(jù)需要在ASP和數(shù)據(jù)庫(kù)之間傳遞,相當(dāng)消耗系統(tǒng)資源。事實(shí)上,如果數(shù)據(jù)庫(kù)僅僅起著數(shù)據(jù)存儲(chǔ)的作用,那么它的功能是遠(yuǎn)遠(yuǎn)沒(méi)有得到利用的。
關(guān)于如何創(chuàng)建存儲(chǔ)過(guò)程,請(qǐng)參考MS SQL的相關(guān)文檔。
本文介紹存儲(chǔ)過(guò)程如何在ASP中運(yùn)用。
簡(jiǎn)單的一個(gè)SQL語(yǔ)句:
select ID,Name,Picture,Time,Duty from employ
我們可以創(chuàng)建一個(gè)存儲(chǔ)過(guò)程:
CREATE PROCEDURE sp_employ
AS
select ID,Name,Picture,Time,Duty from employ
Go
而SQL語(yǔ)句:
select ID,Name,Picture,Time,Duty from employ where ID=10230
對(duì)應(yīng)的存儲(chǔ)過(guò)程是:(用Alter替換我們已有的存儲(chǔ)過(guò)程)
ALTER PROCEDURE sp_employ
@inID int
AS
select ID,Name,Picture,Time,Duty from employ where ID=@inID
Go
下面對(duì)比一下SQL和存儲(chǔ)過(guò)程在ASP中的情況。首先看看直接執(zhí)行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)
%>
再看看如何執(zhí)行Stored Procedure:
<%
dim Conn, strSQL, rs
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=webData;uid=user;pwd=password" ’make connection
strSQL = "sp_employ"
Set rs = Conn.Execute(strSQL)
%>
而執(zhí)行帶參數(shù)的Stored Procedure也是相當(dāng)類(lèi)似的:
<%
dim Conn, strSQL, rs, myInt
myInt = 1
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=webData;uid=user;pwd=password"
strSQL = "sp_myStoredProcedure " & myInt
Set rs = Conn.Execute(strSQL)
%>
你可能覺(jué)得在ASP中使用存儲(chǔ)過(guò)程原來(lái)是這樣的簡(jiǎn)單。對(duì)!就是這么簡(jiǎn)單。