創建數據庫連接文件【dsn文件】的方法
創建 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 數據庫的文件 DSN
注意 由於性能和可靠性的原因,我們極力推薦您使用“客戶-服務器數據庫引擎”配置由這樣一種 Web 應用程序驅動的數據,這些 Web 應用程序必須滿足 10 個以上的用戶的同時訪問。盡管 ASP 可以使用任何 ODBC 兼容的數據庫,但它是為使用客戶-服務器數據庫而設計的,而且經過了嚴格的測試,這些數據庫包括 Microsoft ® SQL Server、Oracle 等。
ASP 支持共享文件數據庫(如 Microsoft ® Access 或 Microsoft ® FoxPro)作為有效的數據源。盡管在 ASP 文檔中的一些示例使用共享文件數據庫,但我們建議只將此類數據庫引擎用於開發或有限的配置方案。共享文件數據庫可能無法很好地適用於可滿足高需求、高質量的 Web 應用程序的客戶-服務器數據庫。
配置 SQL Server 數據庫文件 DSN
注意 如果數據庫駐留在遠程服務器上,請與服務器管理員聯系,獲取附加的配置信息;下面的過程使用 SQL Server 的 ODBC 默認的設置,它可能不適用於您的硬件配置。
配置 Oracle 數據庫文件 DSN
首先要確保 Oracle 用戶軟件被正確地安裝要創建 DSN 的計算機上。詳細信息,請與服務器管理員聯系或參閱數據庫軟件文檔。
注意 DSN 文件用 .dsn 擴展名,位於 \Programs\Common Files\ODBC\Data Sources 目錄中。
有關創建 DSN 文件的詳細信息,請訪問 Microsoft ODBC Web 站點:http://microsoft.com/odbc/。
====================================================
訪問數據庫信息的第一步是和數據庫源建立連接。ADO 提供 Connection 對象,可以使用該對象建立和管理應用程序和 ODBC 數據庫之間的連接。Connection 對象具有各種屬性和方法,可以使用它們打開和關閉數據庫連接,並且發出查詢請求來更新信息。
要建立數據庫連接,首先應創建 Connection 對象的實例。例如,下面的腳本創建 Connection 對象,接著打開數據庫連接:
<% 'Create a connection object Set cn = Server.CreateObject("ADODB.Connection") 'Open a connection; the string refers to the DSN cn.Open "FILEDSN=MyDatabase.dsn" %>
注意 無論在等號 (=) 之前還是之後,DSN 字符串都不能包含空格。
在這種情況下,Connection 對象的 Open 方法引用基於 DSN 的文件,其中包含關於數據庫的位置和配置信息。也可以不引用 DSN,直接顯式引用供應程序、數據源、用戶 ID 和密碼。
連接過程
<% Set cn = Server.CreateObject("ADODB.Connection") '創建數據庫連接對象 Set rsCustomers = Server.CreateObject("ADODB.Recordset") '創建數據庫查詢對象 cn.Open "FILEDSN=SQLlink.dsn" '打開數據庫 strSQL = "SELECT username,password FROM [myDatabase].[dbo].[user] where username='duguying'" rsCustomers.Open strSQL, cn '運行SQL語句 %>
處理數據庫返回數據
Set username1= rsCustomers("username") '獲取username字段的返回結果 Set password1= rsCustomers("password") '獲取password字段的返回結果 Do Until rsCustomers.EOF Response.Write username1 & " " & password1 & "<BR>" rsCustomers.MoveNext Loop '通過循環獲取所有返回記錄