?? page11.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>訪問數據庫</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="Microsoft Border" content="none">
</head>
<body background="../../images/exptextb.jpg">
<!-- Spidersoft WebZIP Ad Banner Insert -->
<!-- End of Spidersoft WebZIP Ad Banner Insert-->
<p><font FACE="宋體" size="3"><strong>訪問數據庫</strong></font></p>
<p><font FACE="宋體" SIZE="2">ActiveX Data Objects (ADO)
是一項容易使用并且可擴展的將數據庫訪問添加到 Web
頁的技術。可以使用 ADO 去編寫緊湊簡明的腳本以便連接到 Open
Database Connectivity (ODBC) 兼容的數據庫和 OLE DB
兼容的數據源。如果您是一個對數據庫連接有一定了解的腳本編寫人員,那么您將發現
ADO
命令語句并不復雜而且容易掌握。同樣地,如果您是一個經驗豐富的數據庫編程人員,您將會正確認識
ADO 的先進的與語言無關性和查詢處理功能。</p>
<p><strong>創建 ODBC DSN 文件</strong></p>
<p>在創建數據庫腳本之前,必須提供一條使 ADO
定位、標識和與數據庫通訊的途徑。數據庫驅動程序使用 Data Source
Name (DSN) 定位和標識特定的 ODBC 兼容數據庫,將信息從 Web
應用程序傳遞給數據庫。典型情況下,DSN
包含數據庫配置、用戶安全性和定位信息,且可以獲取 Windows NT
注冊表項中或文本文件的表格。</p>
<p>通過 ODBC,您可以選擇希望創建的 DSN 的類型:用戶、系統 或
文件。用戶和系統 DSN 存儲在 Windows NT 注冊表中。系統 DSN
允許所有的用戶登錄到特定的服務器上去訪問數據庫,而用戶 DSN
使用適當的安全身份證明限制數據庫到特定用戶的連接。文件 DSN
用于從文本文件中獲取表格,提供了對多用戶的訪問,并且通過復制
DSN
文件,可以輕易地從一個服務器轉移到另一個服務器。由于以上原因,本主題中的示例將使用文件
DSN。</p>
<p>通過在 Windows 的“開始”菜單打開“控制面板”,您可以創建基于
DSN 的文件。雙擊“ODBC”圖標,然后選擇“文件 DSN”屬性頁,單擊“添加”,選擇數據庫驅動程序,然后單擊“下一步”。按照后面的指示配置適用于您的數據庫軟件的
DSN。</p>
<p><strong>配置 Microsoft Access 數據庫的文件 DSN</strong></p>
<p>在“創建新數據源”對話框中,從列表框選擇“Microsoft Access Driver”,然后單擊“下一步”。
</p>
<p>鍵入您的 DSN 文件名,然后單擊“下一步”。 </p>
<p>單擊“完成”創建數據源。 </p>
<p>在“ODBC Microsoft Access 97
安裝程序”對話框中,單擊“選擇”。選擇 Microsoft Access 數據庫文件
(*.mdb),然后單擊“確定”。 </p>
<p>注意 由于性能和可靠性的原因,我們極力推薦您使用“客戶-服務器數據庫引擎”配置由這樣一種
Web 應用程序驅動的數據,這些 Web 應用程序必須滿足 10
個以上的用戶的同時訪問。盡管 ASP 可以使用任何 ODBC
兼容的數據庫,但它是為使用客戶-服務器數據庫而設計的,而且經過了嚴格的測試,這些數據庫包括
Microsoft ? SQL Server、Oracle 等。 </p>
<p>ASP 支持共享文件數據庫(如 Microsoft ? Access 或 Microsoft ? FoxPro)作為有效的數據源。盡管在
ASP
文檔中的一些示例使用共享文件數據庫,但我們建議只將此類數據庫引擎用于開發或有限的配置方案。共享文件數據庫可能無法很好地適用于可滿足高需求、高質量的
Web 應用程序的客戶-服務器數據庫。</p>
<p> </p>
<p><strong>配置 SQL Server 數據庫文件 DSN</strong></p>
<p>注意
如果數據庫駐留在遠程服務器上,請與服務器管理員聯系,獲取附加的配置信息;下面的過程使用
SQL Server 的 ODBC 默認的設置,它可能不適用于您的硬件配置。</p>
<p>在“創建新數據源”對話框中,從列表框中選擇“SQL Server”,然后單擊“下一步”。
</p>
<p>鍵入 DSN 文件的名稱,然后單擊“下一步”。 </p>
<p>單擊“完成”創建數據源。 </p>
<p>鍵入運行 SQL 服務程序的服務器的名稱、登錄 ID 和密碼。 </p>
<p>在“創建 SQL Server
的新數據源”對話框中,在“服務器”列表框中鍵入包含 SQL Server
數據庫的服務器的名稱,然后單擊“下一步”。 </p>
<p>選擇驗證登錄 ID 的方式。 </p>
<p>如果要選擇 SQL 服務器驗證,請輸入一個登錄 ID
和密碼,然后單擊“下一步”。 </p>
<p>在“創建 SQL Server
的新數據源”對話框中,設置默認數據庫、存儲過程設置的驅動程序和
ANSI
標識,然后單擊“下一步”。(要獲取詳細信息,請單擊“幫助”。)
</p>
<p>在對話框(同樣名為“創建 SQL Server
的新數據源”)中,選擇一種字符轉換方法,然后單擊“下一步”。
(詳細信息,請單擊“幫助”。) </p>
<p>在下一個對話框(同樣名為“創建 SQL Server
的新數據源”)中,選擇登錄設置。 </p>
<p>注意 典型情況下, 您只能使用日志來調試數據庫訪問問題。</p>
<p>在“ODBC Microsoft SQL Server
安裝程序”對話框中,單擊“測試數據源”。如果 DSN
正確創建,“測試結果”對話框將指出測試成功完成。 </p>
<p><strong>SQL server 連接和安全信息</strong></p>
<p>如果您正在開發用于連接遠程 SQL Server 數據庫的 ASP
數據庫應用程序,應考慮以下問題:</p>
<p>連接方案- 您可以選擇 TCP/IP 套接字和命名管道的方法訪問遠程的
SQL Server
數據庫。當使用命名管道時,因為在建立連接之前,數據庫用戶必須被
Windows NT 確認,所以對只有適當的 SQL Server
訪問身份而在該計算機上沒有 Windows NT
用戶帳號的用戶可能會被拒絕訪問命名管道。作為一種替代方案,使用
TCP/IP
套接字的連接可直接連接到數據庫服務器,而不必通過使用命名管道的中間計算機。因為使用
TCP/IP 套接字連接可直接連接到數據庫 server,所以通過 SQL Server
的確認,用戶就可以獲得訪問權,而不必通過 Windows NT 的確認。 </p>
<p>注意 在連接到遠程數據庫時使用 TCP/IP 套接字可提高性能。</p>
<p>安全性 - 如果您使用 SQL Server 的 集成 或 混合 安全特性,并且 SQL
Server 數據庫位于遠程服務器上,則不能使用 Windows NT 請求/響應的確認。也就是說,不能將
Windows NT 請求/響應身份證轉發到遠程計算機上,而只能使用基本身份驗證,它根據用戶提供用戶名和口令信息進行。
</p>
<p>有關這一主題的詳細信息,請參閱 http://www.microsoft.com/sqlsupport/</p>
<p>上的 Microsoft SQL Server 技術支持主頁。</p>
<p> </p>
<p><strong>配置 Oracle 數據庫文件 DSN</strong></p>
<p>首先要確保 Oracle 用戶軟件被正確地安裝要創建 DSN
的計算機上。詳細信息,請與服務器管理員聯系或參閱數據庫軟件文檔。</p>
<p>在“創建新數據源”對話框中,從列表框中選擇“Microsoft ODBC for
Oracle”,然后單擊“下一步”。 </p>
<p>鍵入 DSN 文件的名稱,然后單擊“下一步”。 </p>
<p>單擊“完成”創建數據源。 </p>
<p>輸入用戶名、密碼和服務器名,然后單擊“確定”。 </p>
<p>注意 DSN 文件用 .dsn 擴展名,位于 \Programs\Common Files\ODBC\Data Sources
目錄中。</p>
<p>有關創建 DSN 文件的詳細信息,請訪問 Microsoft ODBC Web 站點:http://microsoft.com/odbc/。</p>
<p><strong>連接數據庫</strong></p>
<p>訪問數據庫信息的第一步是和數據庫源建立連接。ADO 提供 Connection
對象,可以使用該對象建立和管理應用程序和 ODBC
數據庫之間的連接。Connection
對象具有各種屬性和方法,可以使用它們打開和關閉數據庫連接,并且發出查詢請求來更新信息。</p>
<p>要建立數據庫連接,首先應創建 Connection
對象的實例。例如,下面的腳本創建 Connection
對象,接著打開數據庫連接:</p>
<p><%</p>
<p>'Create a connection object</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>'Open a connection; the string refers to the DSN</p>
<p>cn.Open "FILEDSN=MyDatabase.dsn"</p>
<p>%></p>
<p>注意 無論在等號 (=) 之前還是之后,DSN 字符串都不能包含空格。</p>
<p>在這種情況下,Connection 對象的 Open 方法引用基于 DSN
的文件,其中包含關于數據庫的位置和配置信息。也可以不引用 DSN,直接顯式引用供應程序、數據源、用戶
ID 和密碼。有關建立連接的可選方法的詳細信息,請參閱 Microsoft
ActiveX Data Objects (ADO)。</p>
<p><strong>用 Connection 對象執行查詢</strong></p>
<p>用 Connection 對象的 Execute 方法,您可以發出結構化查詢語言 (SQL)
查詢數據庫源并檢索結果。SQL
是用于與數據庫通訊的工業標準語言,它有許多命令可用來檢索和更新信息。</p>
<p>下面的腳本使用 Connection 對象的 Execute 方法在 SQL INSERT
命令的表格中發出查詢,該命令將數據插入特定的數據庫表格。在下面的示例中,腳本將名稱
Jose Lugo 插入名為 Customers 的數據庫表中。</p>
<p><%</p>
<p>'Define file based DSN</p>
<p>strDSN = "FILEDSN=MyDatabase.dsn"</p>
<p>'Instantiate the Connection object and open a database connection</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open strDSN</p>
<p>'Define SQL SELECT statement </p>
<p>strSQL = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jose','Lugo')"
</p>
<p>'Use the Execute method to issue a SQL query to database </p>
<p>cn.Execute(strSQL)</p>
<p> </p>
<p>%></p>
<p>注意 基于 DSN 路徑字符串的文件在等號(=)前后不應包含空格。</p>
<p>除了 SQL INSERT 命令以外,您也可以使用 SQL UPDATE 和 DELETE
命令更改和刪除數據庫信息。</p>
<p>用 SQL UPDATE
命令,您可以改變數據庫表中各項目值。下面的腳本使用 UPDATE
命令將 Customers 表中每個 LastName 字段包含姓 Smith 記錄的 FirstName
字段更改為 Jeff。</p>
<p><%</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open "FILEDSN=MyDatabase.dsn"</p>
<p>cn.Execute "UPDATE Customers SET FirstName = 'Jeff' WHERE LastName = 'Smith'
"</p>
<p>%></p>
<p>要想從數據庫表中刪除特定的記錄,可使用 SQL DELETE
命令。下面的腳本從 Customers 表中刪除了所有姓 Smith 的行:</p>
<p><%</p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open "FILEDSN=MyDatabase.dsn"</p>
<p>cn.Execute "DELETE FROM Customers WHERE LastName = 'Smith'"</p>
<p>%></p>
<p>注意 在使用 SQL DELETE 命令時,必須謹慎從事。當使用不帶 WHERE
子句的 DELETE 命令時,它將刪除表中的所有行。一定要包含 SQL WHERE
子句來指定要刪除的確切行。</p>
<p><strong>使用 Recordset 對象處理結果</strong></p>
<p>盡管 Connection 對象簡化了連接數據庫和查詢任務,但 Connection
對象仍有許多不足。確切地說,檢索和顯示數據庫信息的 Connection
對象不能用于創建腳本;您必須確切知道要對數據庫作出的更改,然后才能使用查詢實現更改。</p>
<p>對于檢索數據、檢查結果、更改數據庫,ADO 提供了 Recordset
對象。正如它的名稱所暗示的那樣,Recordset
對象有許多您可以使用的特性,根據您的查詢限制,檢索并且顯示一組數據庫行,即記錄。
Recordset
對象保持查詢返回的記錄的位置,允許您一次一項逐步掃描結果。</p>
<p>根據 Recordset
對象的指針類型屬性設置,您可以滾動和更新記錄。數據庫指針可以讓您在一組記錄中定位到特定的項。指針還用于檢索和檢查記錄,然后在這些記錄的基礎上執行操作。Recordset
對象有一些屬性,可用于精確地控制指針的行為,提高您檢查和更新結果的能力。例如,您可以使用
CursorType 和 CursorLocation
屬性設置指針的類型,將結果返回給客戶端應用程序(結果通常保留在數據庫服務器上)并顯示其他用戶對數據庫的最后一次更改。有關配置
Recordset 對象指針的信息,請參閱 Microsoft ActiveX Data Objects (ADO)。</p>
<p><strong>檢索記錄</strong></p>
<p>一個成功的數據庫應用程序都使用 Connection 對象建立鏈接并使用
Recordset
對象處理返回的數據。通過“協調”兩個對象的特定功能,您可以開發出幾乎可以執行任何數據處理任務的數據庫應用程序。例如,下面的服務器端腳本使用
Recordset 對象執行 SQL SELECT 命令。SELECT
命令檢索一組基于查詢限制的信息。查詢也包含 SQL WHERE
子句,用來縮小查詢的范圍。此例中,WHERE 子句將查詢限制為所有的
Customers 數據庫表中包含的姓 Smith 的記錄。</p>
<p><%</p>
<p>'Establish a connection with data source </p>
<p>strDSN = "FILEDSN=MyDatabase.dsn" </p>
<p>Set cn = Server.CreateObject("ADODB.Connection")</p>
<p>cn.Open strDSN</p>
<p>'Instantiate a Recordset object</p>
<p>Set rsCustomers = Server.CreateObject("ADODB.Recordset")</p>
<p> </p>
<p>'Open a recordset using the Open method</p>
<p>' and use the connection established by the Connection object</p>
<p>strSQL = "SELECT FirstName, LastName FROM Customers WHERE LastName = 'Smith'
"</p>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -