細心的開發人員有時會想到,我們在一個需要讀寫數據庫的頁面里包含類似
<!-- #include file="conn.asp" -->
的代碼時,實際上,當你沒有進行任何讀寫數據庫操作時,這個數據庫連接仍然是打開的,仍然在消耗著服務器的資源。
那么,我們有沒有辦法讓數據庫連接僅在需要讀取數據庫時才打開,不讀取時就沒有任何動作呢,以下即提供這種思路,以求拋磚引玉。
這種思路即是將數據庫連接代碼封裝在函數里,在需要讀取時調用這個函數。
以下是SQL連接代碼:
Function Open_conn()
dim Conn,Strconn
set Conn=server.createobject("adodb.connection")
Strconn = "PRovider = Sqloledb; User ID = 數據庫登錄帳號; PassWord = 數據庫登錄密碼; Initial Catalog = 數據庫名稱; Data Source = (local);"
Conn.open Strconn
set Open_conn=Conn
If Err Then
err.Clear
Conn.close:set Conn=nothing
Response.Write "對不起,數據庫連接出錯。"
Response.End
End If
End Function
調用方法:
將原來的
rs.open sql,conn
改成
rs.open sql,Open_conn()
以下是access連接代碼:
Function Open_conn()
dim Dbpath,Conn
Dbpath=server.MapPath("數據庫路徑")
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 "對不起,數據庫連接出錯。"
Response.End
End If
End Function
調用方法:
將原來的
rs.open sql,conn
改成
rs.open sql,Open_conn()
順便提供一個同一服務器上可以跨站共享ACCESS數據庫的老代碼,也許有朋友用得著:
有時,我們有很多二級域名,可能需要讓這些二級域名調用某同一個ACCESS數據庫,在你不愿意使用SQL數據庫的情況下,數據庫連接可以采用以下辦法。(特別提示:如果你的服務器做了fso安全權限,需要將這個數據庫目錄設置為,允許你需要調用的各站的IIS用戶有權訪問修改。)
以下的數據庫物理路徑類似于 E:/目錄/目錄/數據庫名
dim Conn,Strconn
Set Conn = Server.CreateObject("ADODB.Connection")
Strconn="Provider = Microsoft.Jet.OLEDB.4.0; "
Strconn=Strconn & "Data Source=數據庫物理路徑"
Conn.Open Strconn
If Err Then
err.Clear
Conn.close:set Conn=nothing
Response.Write "對不起,數據庫連接出錯。"
Response.End
End If
新聞熱點
疑難解答