細(xì)心的開發(fā)人員有時會想到,我們在一個需要讀寫數(shù)據(jù)庫的頁面里包含類似
<!-- #include file="conn.asp" -->
的代碼時,實際上,當(dāng)你沒有進(jìn)行任何讀寫數(shù)據(jù)庫操作時,這個數(shù)據(jù)庫連接仍然是打開的,仍然在消耗著服務(wù)器的資源。
那么,我們有沒有辦法讓數(shù)據(jù)庫連接僅在需要讀取數(shù)據(jù)庫時才打開,不讀取時就沒有任何動作呢,以下即提供這種思路,以求拋磚引玉。
這種思路即是將數(shù)據(jù)庫連接代碼封裝在函數(shù)里,在需要讀取時調(diào)用這個函數(shù)。
以下是SQL連接代碼:
Function Open_conn()
dim Conn,Strconn
set Conn=server.createobject("adodb.connection")
Strconn = "PRovider = Sqloledb; User ID = 數(shù)據(jù)庫登錄賬號; PassWord = 數(shù)據(jù)庫登錄密碼; Initial Catalog = 數(shù)據(jù)庫名稱; Data Source = (local);"
Conn.open Strconn
set Open_conn=Conn
If Err Then
err.Clear
Conn.close:set Conn=nothing
Response.Write "對不起,數(shù)據(jù)庫連接出錯。"
Response.End
End If
End Function
調(diào)用方法:
將原來的
rs.open sql,conn
改成
rs.open sql,Open_conn()
以下是access連接代碼:
Function Open_conn()
dim Dbpath,Conn
Dbpath=server.MapPath("數(shù)據(jù)庫路徑")
set Conn=server.createObject("ADODB.connection")
Conn.open "data source="&dbpath&";provider=microsoft.Jet.OLEDB.4.0;"
set Open_conn=Conn
If Err Then
err.Clear
Conn.close:set Conn=nothing
Response.Write "對不起,數(shù)據(jù)庫連接出錯。"
Response.End
End If
End Function
調(diào)用方法:
將原來的
rs.open sql,conn
改成
rs.open sql,Open_conn()
順便提供一個同一服務(wù)器上可以跨站共享ACCESS數(shù)據(jù)庫的老代碼,也許有朋友用得著:
有時,我們有很多二級域名,可能需要讓這些二級域名調(diào)用某同一個ACCESS數(shù)據(jù)庫,在你不愿意使用SQL數(shù)據(jù)庫的情況下,數(shù)據(jù)庫連接可以采用以下辦法。(特別提示:如果你的服務(wù)器做了fso安全權(quán)限,需要將這個數(shù)據(jù)庫目錄設(shè)置為,允許你需要調(diào)用的各站的IIS用戶有權(quán)訪問修改。)
以下的數(shù)據(jù)庫物理路徑類似于 E:\目錄\目錄\數(shù)據(jù)庫名
dim Conn,Strconn
Set Conn = Server.CreateObject("ADODB.Connection")
Strconn="Provider = Microsoft.Jet.OLEDB.4.0; "
Strconn=Strconn & "Data Source=數(shù)據(jù)庫物理路徑"
Conn.Open Strconn
If Err Then
err.Clear
Conn.close:set Conn=nothing
Response.Write "對不起,數(shù)據(jù)庫連接出錯。"
Response.End
End If
文章來自: ASP技術(shù)網(wǎng)站(www.aspjs.net) 詳文參考:http://www.aspjs.net/aspjs1html/ASPjiaocheng/ASPjishuziliao/704.html