數(shù)據(jù)庫文件調用的技巧
(1)事實上,無論換成哪個Access數(shù)據(jù)庫,打開數(shù)據(jù)庫連接與讀取表記錄的步驟是相同的,其中的變量在于數(shù)據(jù)庫文件的名稱及表的名稱,所以可以將上述程序的第3~13行改寫成函數(shù)的形式,并存成一個文件如:ADOFunctions.asp,日后要打開某個數(shù)據(jù)庫文件的話,就把該文件ADOFunctions.asp 裝(include)進來,代碼如下:
<% Dim objConn ’變量Filename為數(shù)據(jù)庫文件名,變量Table Name為表名 Function GetRecordset(FileName,TableName) ’使用ASP的Connection 對象打開數(shù)據(jù)庫 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 %>
由上述代碼可知,函數(shù)名為GetRecordSet,其返回值是存放了表記錄的Record set對象實例,存成文件名為ADOFunctions.asp。現(xiàn)在,利用該文件就可以讀取任何數(shù)據(jù)庫文件的記錄了。如一般讀取數(shù)據(jù)庫的編程可簡化如下:
<HTML><BODY> <! --#Include file="adovbs.inc"--> <! --#include file="ADOFunctions.asp"--> <% ’調用GetRecordset函數(shù)取得一個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 "到達數(shù)據(jù)庫的結尾,已經(jīng)顯示完所有符合條件的記錄" End If ’關閉數(shù)據(jù)庫連接并釋放對象實例 ObjRS. Close Set objRS=Nothing ObjConn.Close Set objConn=Nothing %> </BODY></HTML>
因此,只要在這句代碼Set objRS=GetRecordset("Friend.mdb", "data")中改變數(shù)據(jù)庫名稱和表名稱就可以調用任何Access數(shù)據(jù)庫文件了,當然,要注意的是,后面的數(shù)據(jù)庫中每個表的字段名一定要匹配。
(2)另外,無論換成哪個Access數(shù)據(jù)庫,打開數(shù)據(jù)庫連接與篩選表記錄的步驟也是相同的,其中的變量在于SQL語句(如:"SELECT * FROM data")、數(shù)據(jù)庫文件的名稱及表的名稱。因此同樣道理,可以將這3個變量作為函數(shù)的參數(shù),撰寫GetSQLRecordset函數(shù),并存成文件名為ADOSQLFunctions.asp,日后要用到的話,只要在程序的最前面把這個文件Include進來,就可以利用GetSQLRecordset函數(shù)打開數(shù)據(jù)庫連接,同時也進行篩選表記錄,該函數(shù)的返回值是存放了符合SQL語句的Record set對象實例。
代碼如下:
<% Dim objConn Dim GetSQLRecordset Function GetSQLRecordset(strSQL,FileName,TableName) ’使用ASP的Connection 對象打開數(shù)據(jù)庫
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 %>
|