程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP開發中數據庫文件調用的捷徑

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

編輯:關於ASP編程
引言 
  本文針對ASP程序設計中最基礎、也是最關鍵的部分"數據庫文件的調用"進行說明,同時談談ASP程序設計中數據庫文件調用的一些技巧。 

  ASP簡介

  ASP(Active Server Pages)是微軟於1996年推出的Web應用程序開發技術,它是一種腳本語言、ActiveX組件及HTML語言等的綜合,微軟把它描述為"一個服務器的腳本環境,在這裡可以生成和運行動態的、交互的、高性能的Web服務器應用程序"。其主要功能是為生成動態的、交互式的Web服務器應用程序提供一種功能強大的方式或技術。其特點是命令和腳本都在服務器中解釋執行,然後送到客戶端浏覽器的內容只是標准的HTML頁面。其優點是程序設計簡單易懂,而且方便快捷。ASP在國內的應用已非常普遍,相當一部分的動態網站都運用了ASP技術。

  ASP數據庫文件的調用

  雖然不同的系統可能安裝不同的數據庫驅動程序,但一般的服務器系統都基本支持IIS4.0/5.0,所以服務器系統上至少會有Microsoft Access Driver、Microsoft ODBC for Oracle、SQL Server等3種數據庫驅動程序。因此,服務器系統至少可以使用Access、Oracle、SQL Server等3種數據庫來從事ASP網頁數據庫設計。由於Microsoft Access 97/2000屬於微軟的Office系列之一,且界面和Office系列軟件相似,學習起來基本沒什麼障礙,因此,本文將從初學者入門的角度,使用Access數據庫文件來進行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裝進來就可以了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved