ActiveX Data Objects (ADO) 是一項容易使用并且可擴展的將數據庫訪問添加到 Web 頁的技術。可以使用 ADO 去編寫緊湊簡明的腳本以便連接到 Open Database Connectivity (ODBC) 兼容的數據庫和 OLE DB 兼容的數據源。如果您是一個對數據庫連接有一定了解的腳本編寫人員,那么您將發現 ADO 命令語句并不復雜而且容易掌握。同樣地,如果您是一個經驗豐富的數據庫編程人員,您將會正確認識 ADO 的先進的與語言無關性和查詢處理功能。
創建 ODBC DSN 文件 在創建數據庫腳本之前,必須提供一條使 ADO 定位、標識和與數據庫通訊的途徑。數據庫驅動程序使用 Data Source Name (DSN) 定位和標識特定的 ODBC 兼容數據庫,將信息從 Web 應用程序傳遞給數據庫。典型情況下,DSN 包含數據庫配置、用戶安全性和定位信息,且可以獲取 Windows NT 注冊表項中或文本文件的表格。
通過 ODBC,您可以選擇希望創建的 DSN 的類型:用戶、系統 或 文件。用戶和系統 DSN 存儲在 Windows NT 注冊表中。系統 DSN 允許所有的用戶登錄到特定的服務器上去訪問數據庫,而用戶 DSN 使用適當的安全身份證明限制數據庫到特定用戶的連接。文件 DSN 用于從文本文件中獲取表格,提供了對多用戶的訪問,并且通過復制 DSN 文件,可以輕易地從一個服務器轉移到另一個服務器。由于以上原因,本主題中的示例將使用文件 DSN。
通過在 Windows 的“開始”菜單打開“控制面板”,您可以創建基于 DSN 的文件。雙擊“ODBC”圖標,然后選擇“文件 DSN”屬性頁,單擊“添加”,選擇數據庫驅動程序,然后單擊“下一步”。按照后面的指示配置適用于您的數據庫軟件的 DSN。
在“創建新數據源”對話框中,從列表框選擇“Microsoft Access Driver”,然后單擊“下一步”。 鍵入您的 DSN 文件名,然后單擊“下一步”。 單擊“完成”創建數據源。 在“ODBC Microsoft Access 97 安裝程序”對話框中,單擊“選擇”。選擇 Microsoft Access 數據庫文件 (*.mdb),然后單擊“確定”。 注意 由于性能和可靠性的原因,我們極力推薦您使用“客戶-服務器數據庫引擎”配置由這樣一種 Web 應用程序驅動的數據,這些 Web 應用程序必須滿足 10 個以上的用戶的同時訪問。盡管 ASP 可以使用任何 ODBC 兼容的數據庫,但它是為使用客戶-服務器數據庫而設計的,而且經過了嚴格的測試,這些數據庫包括 Microsoft SQL Server、Oracle 等。
ASP 支持共享文件數據庫(如 Microsoft Access 或 Microsoft FoxPRo)作為有效的數據源。盡管在 ASP 文檔中的一些示例使用共享文件數據庫,但我們建議只將此類數據庫引擎用于開發或有限的配置方案。共享文件數據庫可能無法很好地適用于可滿足高需求、高質量的 Web 應用程序的客戶-服務器數據庫。
配置 SQL Server 數據庫文件 DSN
注意 如果數據庫駐留在遠程服務器上,請與服務器管理員聯系,獲取附加的配置信息;下面的過程使用 SQL Server 的 ODBC 默認的設置,它可能不適用于您的硬件配置。
在“創建新數據源”對話框中,從列表框中選擇“SQL Server”,然后單擊“下一步”。 鍵入 DSN 文件的名稱,然后單擊“下一步”。 單擊“完成”創建數據源。 鍵入運行 SQL 服務程序的服務器的名稱、登錄 ID 和密碼。 在“創建 SQL Server 的新數據源”對話框中,在“服務器”列表框中鍵入包含 SQL Server 數據庫的服務器的名稱,然后單擊“下一步”。 選擇驗證登錄 ID 的方式。 如果要選擇 SQL 服務器驗證,請輸入一個登錄 ID 和密碼,然后單擊“下一步”。 在“創建 SQL Server 的新數據源”對話框中,設置默認數據庫、存儲過程設置的驅動程序和 ANSI 標識,然后單擊“下一步”。(要獲取詳細信息,請單擊“幫助”。) 在對話框(同樣名為“創建 SQL Server 的新數據源”)中,選擇一種字符轉換方法,然后單擊“下一步”。 (詳細信息,請單擊“幫助”。) 在下一個對話框(同樣名為“創建 SQL Server 的新數據源”)中,選擇登錄設置。 注意 典型情況下, 您只能使用日志來調試數據庫訪問問題。
在“ODBC Microsoft SQL Server 安裝程序”對話框中,單擊“測試數據源”。如果 DSN 正確創建,“測試結果”對話框將指出測試成功完成。 SQL server 連接和安全信息 如果您正在開發用于連接遠程 SQL Server 數據庫的 ASP 數據庫應用程序,應考慮以下問題:
連接方案- 您可以選擇 TCP/ip 套接字和命名管道的方法訪問遠程的 SQL Server 數據庫。當使用命名管道時,因為在建立連接之前,數據庫用戶必須被 Windows NT 確認,所以對只有適當的 SQL Server 訪問身份而在該計算機上沒有 Windows NT 用戶帳號的用戶可能會被拒絕訪問命名管道。作為一種替代方案,使用 TCP/IP 套接字的連接可直接連接到數據庫服務器,而不必通過使用命名管道的中間計算機。因為使用 TCP/IP 套接字連接可直接連接到數據庫 server,所以通過 SQL Server 的確認,用戶就可以獲得訪問權,而不必通過 Windows NT 的確認。 注意 在連接到遠程數據庫時使用 TCP/IP 套接字可提高性能。
安全性 - 如果您使用 SQL Server 的 集成 或 混合 安全特性,并且 SQL Server 數據庫位于遠程服務器上,則不能使用 Windows NT 請求/響應的確認。也就是說,不能將 Windows NT 請求/響應身份證轉發到遠程計算機上,而只能使用基本身份驗證,它根據用戶提供用戶名和口令信息進行。 有關這一主題的詳細信息,請參閱 http://www.microsoft.com/sqlsupport/default.htm 上的 Microsoft SQL Server 技術支持主頁。
結合 HTML 表格和數據庫訪問 包含 HTML 表格的 Web 頁可使用戶遠程查詢數據庫并且檢索特定的信息。用 ADO 您可以創建非常簡單的腳本來收集用戶表格信息、創建自定義的數據庫查詢以及將信息返回給用戶。使用 ASP Request 對象,您可以檢索輸入到 HTML 表格的信息并將這些信息合并到 SQL 語句中。例如,下面的腳本模塊將 HTML 表格提供的信息插入表格中。此腳本用 Request 對象的 Form 集合收集用戶信息。
有關表格和使用 ASP Request 對象的詳細信息,請參閱 使用 HTML 表格。
管理數據庫連接 設計一個能經得起考驗的 Web 數據庫應用程序(例如為幾千個客戶服務的聯機購物應用程序)的最大挑戰,在于如何合理地管理數據庫連接。打開并且保持數據庫連接,即使在沒有信息傳輸時,也會嚴重耗費數據庫服務器的資源并且可能會導致連接性問題。設計良好的 Web 數據庫應用程序將回收數據庫連接并能夠補償由于網絡堵塞造成的延遲。