函數|技巧|串連資料庫
細心的開發人員有時會想到,我們在一個需要讀寫資料庫的頁面裡包含類似<!-- #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