ASP是一種Web應用程序開發技術。它與ADO的充分結合,提供了強大的數據庫訪問功能,已成為網上開發數據庫的重要工具。
一、ASP數據庫原理
ASP技術是通過后綴名為.asp的文件來實現的。當在瀏覽器Browser 中訪問以后綴名為. asp的頁面時,實際上就是向Web 服務器發送一個HTTP請求,Web服務器接收到請求后,調用相應的ASP引擎asp.dll來處理。若ASP腳本中含有訪問數據庫的請求,就利用ADO對象,調用ODBC驅動程序,連接后臺數據庫,執行ASP文檔所指定的SQL指令,實現對數據庫的操作,并將執行結果動態生成一個HTML頁面返回Web服務器,然后與ASP文檔中非腳本的HTML代碼進行合并送給用戶瀏覽器,工作原理如圖所示。
因此客戶端瀏覽器接收的是經WEB服務器執行后生成的一個純粹的HTML文檔,可被運行在任何平臺上的瀏覽器所執行,同時由于ASP源程序是在服務器端執行,保證了ASP源程序代碼的安全性。另外服務器僅僅是將執行結果返回給客戶端瀏覽器,減輕了網絡傳輸的負擔,提高了交互的速度。
二、ASP主要內建對象
ASP提供了多個內置對象。常用的主要有5個對象,使用者無需了解對象的工作原理和設計方法,只要直接調用對象的屬性和方法,就可完成Web應用程序的請求、響應、會話等基本功能。
Request對象:獲取客戶端通過HTTP請求傳遞過來的信息,包括通過表單傳遞的參數、用戶認證的cookie信息等。
Response對象:實現服務器傳遞信息給用戶。包括直接發送信息給瀏覽器、重定向瀏覽器到另一個URL地址或者設置cookie值。
Application對象:存貯一個應用程序中所有用戶共享的信息,供所有用戶共享。
Session對象:存貯一個用戶在和服務器會話期間的信息。當用戶在訪問不同頁面時,這些Session對象的變量一直被保存。
Server對象:提供對服務器上的方法和屬性進行的訪問。如創建ActiveX組件的實例、將虛擬路徑映射到物理路徑等等。
三、ADO組件的主要對象
ASP提供了多個內置的服務器端組件,使用這些組件可以快速有效地完成各種復雜的功能。其中最重要的一個是數據庫訪問組件ADO (Active Data Objects) ,可以在服務器中提供對數據庫操作的強大功能。在ASP頁面中可以調用ADO對象實現對數據庫的操作, 它通過ODBC或者相應的數據庫引擎,通過ADO與ASP 的結合, 可建立提供數據庫信息的網頁, 允許訪問者在瀏覽器頁面上查詢、插入、更新和刪除站點服務器的數據庫信息。
ADO組件中我們使用最多的有三個主要對象,Connection對象、Command對象和Recordset對象。通過這三個對象用戶可以很方便地建立數據庫連接,執行SQL查詢以及完成數據庫訪問等操作。
Connection對象:連接對象,主要用來建立并管理與數據庫的連接,是WEB數據庫與外界聯系的唯一通道,只要建立了該對象,就可以重復地使用它對數據庫進行查詢、檢索等操作。使用Connection對象的屬性和方法可以用來打開和關閉數據庫連接。
Command對象:命令對象,是ADO中專門負責對數據庫執行命令和操作的對象,通過已建立的連接對數據庫可提供靈活的查詢,還可以對數據庫進行添加、刪除和更新數據。在運行Connection對象的命令時,已經隱含地創建了一個Command對象。
Recordset對象:記錄集對象,主要用于表示訪問數據庫查詢所返回的結果,通過它可實現對數據庫中的數據的增、刪、改等操作。
四、ASP開發WEB數據庫
ASP是通過ADO來訪問數據庫,任何基于ODBC的數據庫系統都能被ASP輕松訪問。用ASP 結合ADO進行Web數據庫開發,可按以下步驟實現:
1.連接數據庫
在進行數據庫的連接之前,必須首先調用Server對象的CreateObject 方法創建一個Connection對象的實例, 再使用Open 方法打開Connection對象與數據庫之間的通道,實現數據源與ASP程序的連通。例如,Set conn = Server. Create.Object (\"ADODB.Connection\");Conn. open“數據庫名”。
2.指定對數據庫的操作命令
連接數據庫后, 可對數據庫操作, 如查詢, 修改, 刪除等, 這些都是通過SQL指令來完成的。例如要在數據庫內的數據表中查詢所有的記錄,sqlStr = “select * from 數據表名。
3.顯示結果
利用Connection對象Execute()方法返回的結果集自動創建一個Recordset對象,例如,Set RS = Conn. Execute(“SQL ”語句),然后利用Recordsets對象所提供的屬性和方法顯示查詢結果。
4.關閉連接
數據處理完之后,應該關閉數據庫的連接以釋放系統資源,即關閉結果集對象并斷開與數據庫的連接,例如,RS. close;Conn.Close。