ASP開發中數據庫文件調用的捷徑

經過Access應用程序製做如圖1的數據庫文件(friend.mdb)

圖1
  那麼, ASP程序設計中調用該數據庫文件有兩種方式,一種爲直接在"控制面板"的"數據源(ODBC)"上進行手工設置;另一種是編程,經過相對路徑調用數據庫文件,這種方式可適用在任何一臺服務器上而不用再進行配置。第一種方式較爲簡單安全,本文所談的是第二種方式。
  下面列出 ASP程序設計中通常讀取數據庫文件中表記錄的方法:
01: <HTML><BODY>
02: <!--#include file="adovbs.inc"-->
03: <%
04:  ’使用 ASP的Connection 對象打開數據庫,數據庫文件爲上圖的<Friend.mdb>’
05:  Dim objConn
06:  Set objConn=Server.CreateObject("ADODB.Connection")
07:  objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
08:    "Data Source=" & Server.MapPath("Friend.mdb")
09:  objConn.Open
10:  讀取"data"表的記錄,而後存放在Record set對象
11:  Dim objRS
12:  Set objRS=Server.CreateObject("ADODB.Recordset")
13:  ObjRS.Open "data",objConn,adOpenKeyset,adLockOptimistic,adCmdTable
14:  ’將目前指針所指到的記錄顯示在瀏覽器上
15:  If Not objRS. EOF then
16:   Response.Write "編號:"&objRS("編號")& "<BR>"
17:   Response. Write "姓名:"&objRS("姓名")& "<BR>"
18:   Response. Write "性別:"&objRS("性別")& "<BR>"
19:  Else
20:   Response.Write "到達數據庫的結尾,已經顯示完全部符合條件的記錄"
21:  End If
22:   ’關閉數據庫鏈接並釋放對象實例
23:   ObjRS. Close
24:   Set objRS=Nothing
25:   ObjConn.Close
26:   Set objConn=Nothing
27: %>
28: </BODY></HTML>
  上述代碼爲 ASP編程中通常打開Access數據庫文件的設計步驟。
  數據庫文件調用的技巧
  (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
%>
  上述代碼中函數名稱爲:GetSQLRecordset,文件名爲ADOSQLFunctions. asp
  如今,利用該文件就能夠調用任何Access數據庫的鏈接,同時對錶記錄進行篩選的操做。以Friend.mdb文件爲例,列出表data中全部的記錄,程序代碼以下:
<HTML><BODY>
<!--#include file="adovbs.inc"-->
<!--#include file="ADOSQLFunctions. asp"-->
<%
 Dim objRS
 Set objRS=GetSQLRecordset("SELECT 編號,姓名,性別from_ data","Friend.mdb","data")
 Do While Not objRS.EOF
  Response.Write "編號:"&objRS("編號")&"<BR>"
  Response.Write "姓名:"&objRS("姓名")&"<BR>"
  Response.Write "性別:"&objRS("性別")&"<BR>"
 Loop
 objRS.Close
 Set objRS=Nothing
 ObjConn.Close
 Set objConn=Nothing
%>
</BODY></HTML>
  小結
  在 ASP編程中,利用好函數每每能夠對咱們的程序代碼簡單明瞭化,讀取條理也容易維護,同時也可避免大量的重複繁雜的代碼。像上述的狀況,若只是簡單的與數據庫鏈接,則用第一種狀況,將文件ADORecordset. asp 裝(include)進來就能夠了,若要對數據庫中某個表的記錄進行篩選或其餘SQL語句操做,則用第二種狀況,將文件ADOSQLRecordset. asp裝進來就能夠了。
相關文章
相關標籤/搜索