資料|資料庫 資料庫檔案調用的技巧
(1)事實上,無論換成哪個Access資料庫,開啟資料庫連接與讀取表記錄的步驟是相同的,其中的變數在於資料庫檔案的名稱及表的名稱,所以可以將上述程式的第3~13行改寫成函數的形式,並存成一個檔案如:ADOFunctions.asp,日後要開啟某個資料庫檔案的話,就把該檔案ADOFunctions.asp 裝(include)進來,代碼如下:
<%
Dim objConn
’變數Filename為資料庫檔案名,變數Table Name為表名
Function GetRecordset(FileName,TableName)
’使用ASP的Connection 對象開啟資料庫
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("Filename")
objConn.Open
’讀取表的記錄,然後存放在Record set對象"objRS"
Dim objRS
Set objRS=Server.CreateObject("ADODB.Recordset")
ObjRS.Open TableName,objConn,adOpenKeyset,adLockOptimistic,adCmdTable
End Function
%>
由上述代碼可知,函數名為GetRecordSet,其傳回值是存放了表記錄的Record set對象執行個體,存成檔案名稱為ADOFunctions.asp。現在,利用該檔案就可以讀取任何資料庫檔案的記錄了。如一般讀取資料庫的編程可簡化如下:
<HTML><BODY>
<! --#Include file="adovbs.inc"-->
<! --#include file="ADOFunctions.asp"-->
<%
’調用GetRecordset函數取得一個Record set對象實F例,然後指派給變數objRS
Dim objRS
Set objRS=GetRecordset("Friend.mdb","data")
’將目前指標所指到的記錄顯示在瀏覽器上
If Not objRS.EOF Then
Response.Write "編號:"&objRS("編號")& "<BR>"
Response.Write "姓名:"&objRS("姓名")& "<BR>"
Response.Write "性別:"&objRS("性別")&"<BR>"
Else
Response.Write "到達資料庫的結尾,已經顯示完所有合格記錄"
End If
’關閉資料庫連接並釋放對象執行個體
ObjRS. Close
Set objRS=Nothing
ObjConn.Close
Set objConn=Nothing
%>
</BODY></HTML>
因此,只要在這句代碼Set objRS=GetRecordset("Friend.mdb", "data")中改變資料庫名稱和表名稱就可以調用任何Access資料庫檔案了,當然,要注意的是,後面的資料庫中每個表的欄位名一定要匹配。
(2)另外,無論換成哪個Access資料庫,開啟資料庫連接與篩選表記錄的步驟也是相同的,其中的變數在於SQL語句(如:"SELECT * FROM data")、資料庫檔案的名稱及表的名稱。因此同樣道理,可以將這3個變數作為函數的參數,撰寫GetSQLRecordset函數,並存成檔案名稱為ADOSQLFunctions.asp,日後要用到的話,只要在程式的最前面把這個檔案Include進來,就可以利用GetSQLRecordset函數開啟資料庫連接,同時也進行篩選表記錄,該函數的傳回值是存放了符合SQL語句的Record set對象執行個體。
代碼如下:
<%
Dim objConn
Dim GetSQLRecordset
Function GetSQLRecordset(strSQL,FileName,TableName)
’使用ASP的Connection 對象開啟資料庫
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("Filename")
objConn.Open
’從表讀取符合SQL語句的記錄並存放在Record set對象
Set GetSQLRecordset=Server.CreateObject("ADODB.Recordset")
GetSQLRecordset.Open_ strSQL,objConn,adOpenKeyset,adLockOptimistic,adCmdText
End Function
%>