金 晶

WWW是目前Internet上發展最快的領域,也是Inernet網上最重要的信息檢索手段。早期的WEB頁面主要是用來傳遞靜態的HTML文檔,后來由于CGI接口、VBScript和JavaScript語言的引入,特別是近幾年發展起來的ASP技術,使得WEB頁面可以方便傳播動態信息。借助ASP技術,可以設計出具有聲音、動畫、圖形、圖像和各種特殊效果的WEB頁面,以及方便的訪問數據庫。
一、ASP技術
1.ASP工作原理
ASP,是Active Server Pages的縮寫,即“服務器端動態網頁”。它是基于WEB的一種編程技術,能夠把HTML文件、腳本命令以及COM組件組合在一起,形成一個能夠在服務器端運行的動態WEB應用程序,并能夠按照用戶的要求制作出標準的HTML頁面傳遞給客戶端瀏覽器。
有了ASP,就不必擔心用戶的瀏覽器是否能夠讀懂動態網頁中所編寫的代碼,因為所有的程序都在服務器端執行。當程序執行完畢后,服務器端執行的結果返回給客戶端瀏覽器,這樣就減輕了客戶端瀏覽器的負擔,大大提高了交互的速度。
2.ASP的運行環境
目前,ASP可運行在以下三種環境:Windows NT(2000 Server)+IIS4.0(Internet Information Server)以上;Windows NT workstation +Peer Web Server;Windows95/98+PWS(Personal Web Server)。
3.ASP文件的建立
ASP的程序代碼簡單、通用,文件名由.asp結尾,通常由四個部分構成:標準的HTML標記;ASP語法命令:位于<%%>之間;服務器端的include語句;腳本語言。
4.ASP的內置對象
在面向對象編程中,對象是具有屬性(數據)和方法(行為方式)的實體。ASP中提供了六個內置對象供用戶直接調用,它們分別是:Application對象,控制服務器端應用程序的啟動和終止狀態,并保存整個應用程序過程中的信息;Request對象,從用戶端獲取信息傳遞給服務器,它是ASP讀取用戶輸入的主要方法;Response對象,服務器將輸出的內容發送到客戶端;Server對象,提供服務器的方法和屬性;Session對象,存儲特定的用戶會話所需的信息;Object Context對象,配合服務器進行分布事務處理。
二、ASP中的數據庫訪問
在ASP中,利用ADO(ActiveX Data Objects)可以方便地訪問數據庫,很好地對數據庫進行處理。筆者通過一個實例,具體闡述ASP利用ADO訪問數據庫的過程。在該實例中,用戶希望通過網頁能夠訪問服務器中的teacher數據庫中的Information數據表,然后將該表中的所有數據顯示在返回表格中,具體步驟如下:
1.定義數據源
在WEB服務器上,打開“控制面板”,選中“ODBC”,在“系統DSN”下選“添加”,選定數據庫種類、名稱、位置等。該實例數據庫種類是“SQL Server”,名稱是teacher。
2.創建ADO的對象
ASP技術中的ADO對象組件作為用戶快速訪問數據庫的最簡便方式,只要使用ADO中的兩個最基本的對象Connection和Recordset對象,就能夠實現對數據庫的訪問。具體來說,Connection對象的功能是建立和特定數據庫的連接,而Recordset對象的功能則是取得從該數據庫中返回的查詢數據。首先,應為Connection和Recordset對象創建各自的對象實例:
<%SetConn=Server.CreateObject(”ADODB.Connection”)%>
<%SetRS=Server.CreateObject(”ADODB.Recordset”)%>
其中,RS和Conn分別是對象實例名稱,用戶可以自行定義。這樣就成功地創建了兩個空的Connection和Recordset對象。
3.建立與數據庫的連接
使用Connection對象的Open方法建立與特定數據庫的連接,Connection對象的Open方法有3個參數選項,分別為目標數據庫的名稱、登錄用戶名和口令,語法為ConnOpenConnectionString,UserID,Password。其中,ConnectionString參數表示與數據源建立的相關信息,如果用戶已經成功建立了該數據庫的DNS,就可以直接的使用該DNS。另外兩個參數登錄用戶名和口令為可選項,如果用戶在建立數據連接的DNS時已經設定了登錄用戶名和口令,就可以省略這兩個參數項。在此,用戶使用Connection對象的Open方法與teacher數據庫建立連接,具體形式為<% Conn.Open “teacher”%>。
4.使用Recrodset對象獲取數據
用戶希望取得teacher數據庫中Information數據表中的所有數據,因此使用最簡單的“Select * From Information”即可。為了使代碼更直觀,容易修改和維護,建議用戶將上述的SQL語句用某個變量代替。具體為
<% SQL=”Select * From Information”%>
其中,SQL為變量名,用戶可以自行定義,然后使用Connection對象中的Execute方法執行該SQL語句,并將結果輸入到Recordset對象中,具體為:
<% SetRS=Conn.Execute(SQL)%>
至此,ADO從數據庫中查詢到的所有數據被保存到Recordset對象中。
5.檢驗Recordset對象是否為空
在對Recordset對象中的數據進行進一步處理之前,建議用戶最好驗證一下是否確實將查詢結果數據保存到了Recordset對象中。用戶可以使用Recordset對象的BOF和EOF屬性實現驗證功能。BOF如果為真則代表數據指正位于首行數據之前,如果EOF為真則代表為數據指正位于末行數據之后,如果兩者皆為真,則說明Recordset對象為空。具體代碼為:
<% if (RS.EOF and RS.BOF) then
response.write “NO records found”
end if %>
6.處理Recordset對象數據
在驗證Recordset對象中確實含有查詢返回數據之后,用戶就可以按照自己的需要對數據進行響應的處理。通常較為常用的Recordset命令為:
Recordset.Fields.Count:Recordset對象的列數;
Recordset(I).Name:第I列名稱,I由0到Recordset.Fields.Count-1;
Recordset(I)第I列數據,I由0到Recordset.Fields.Count-1;
Recordset(“列名稱”):讀取指定列的數據;
Recordset.MoveNext:數據指針下移一行;
Recordset.MovePrev:數據指針上移一行;
Recordset.MoveFirst:數據指針移到第一行;
Recrodset.MoveLast:數據指針移到最末一行。
接下來的問題是如何將Recordset對象中的數據顯示出來。如果用戶希望以表格的形式顯示數據,則首先需要ASP頁面中建立表格標簽:
<% =RS(I).Name %> |
<% =RS(I)%> |