ASP通過(guò)ODBC連接SQL Server 2008數(shù)據(jù)庫(kù)的方法
創(chuàng)建數(shù)據(jù)庫(kù)連接文件【dsn文件】的方法
創(chuàng)建 ODBC DSN 文件
在創(chuàng)建數(shù)據(jù)庫(kù)腳本之前,必須提供一條使 ADO 定位、標(biāo)識(shí)和與數(shù)據(jù)庫(kù)通訊的途徑。數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序使用 Data Source Name (DSN) 定位和標(biāo)識(shí)特定的 ODBC 兼容數(shù)據(jù)庫(kù),將信息從 Web 應(yīng)用程序傳遞給數(shù)據(jù)庫(kù)。典型情況下,DSN 包含數(shù)據(jù)庫(kù)配置、用戶安全性和定位信息,且可以獲取 Windows NT 注冊(cè)表項(xiàng)中或文本文件的表格。
通過(guò) ODBC,您可以選擇希望創(chuàng)建的 DSN 的類型:用戶、系統(tǒng)或文件。用戶和系統(tǒng) DSN 存儲(chǔ)在 Windows NT 注冊(cè)表中。系統(tǒng) DSN 允許所有的用戶登錄到特定的服務(wù)器上去訪問(wèn)數(shù)據(jù)庫(kù),而用戶 DSN 使用適當(dāng)?shù)陌踩矸葑C明限制數(shù)據(jù)庫(kù)到特定用戶的連接。文件 DSN 用于從文本文件中獲取表格,提供了對(duì)多用戶的訪問(wèn),并且通過(guò)復(fù)制 DSN 文件,可以輕易地從一個(gè)服務(wù)器轉(zhuǎn)移到另一個(gè)服務(wù)器。由于以上原因,本主題中的示例將使用文件 DSN。
通過(guò)在 Windows 的“開(kāi)始”菜單打開(kāi)“控制面板”,您可以創(chuàng)建基于 DSN 的文件。雙擊“ODBC”圖標(biāo),然后選擇“文件 DSN”屬性頁(yè),單擊“添加”,選擇數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,然后單擊“下一步”。按照后面的指示配置適用于您的數(shù)據(jù)庫(kù)軟件的 DSN。
配置 Microsoft Access 數(shù)據(jù)庫(kù)的文件 DSN
- 在“創(chuàng)建新數(shù)據(jù)源”對(duì)話框中,從列表框選擇“Microsoft Access Driver”,然后單擊“下一步”。
- 鍵入您的 DSN 文件名,然后單擊“下一步”。
- 單擊“完成”創(chuàng)建數(shù)據(jù)源。
- 在“ODBC Microsoft Access 97 安裝程序”對(duì)話框中,單擊“選擇”。選擇 Microsoft Access 數(shù)據(jù)庫(kù)文件 (*.mdb),然后單擊“確定”。
注意 由于性能和可靠性的原因,我們極力推薦您使用“客戶-服務(wù)器數(shù)據(jù)庫(kù)引擎”配置由這樣一種 Web 應(yīng)用程序驅(qū)動(dòng)的數(shù)據(jù),這些 Web 應(yīng)用程序必須滿足 10 個(gè)以上的用戶的同時(shí)訪問(wèn)。盡管 ASP 可以使用任何 ODBC 兼容的數(shù)據(jù)庫(kù),但它是為使用客戶-服務(wù)器數(shù)據(jù)庫(kù)而設(shè)計(jì)的,而且經(jīng)過(guò)了嚴(yán)格的測(cè)試,這些數(shù)據(jù)庫(kù)包括 Microsoft ® SQL Server、Oracle 等。
ASP 支持共享文件數(shù)據(jù)庫(kù)(如 Microsoft ® Access 或 Microsoft ® FoxPro)作為有效的數(shù)據(jù)源。盡管在 ASP 文檔中的一些示例使用共享文件數(shù)據(jù)庫(kù),但我們建議只將此類數(shù)據(jù)庫(kù)引擎用于開(kāi)發(fā)或有限的配置方案。共享文件數(shù)據(jù)庫(kù)可能無(wú)法很好地適用于可滿足高需求、高質(zhì)量的 Web 應(yīng)用程序的客戶-服務(wù)器數(shù)據(jù)庫(kù)。
配置 SQL Server 數(shù)據(jù)庫(kù)文件 DSN
注意 如果數(shù)據(jù)庫(kù)駐留在遠(yuǎn)程服務(wù)器上,請(qǐng)與服務(wù)器管理員聯(lián)系,獲取附加的配置信息;下面的過(guò)程使用 SQL Server 的 ODBC 默認(rèn)的設(shè)置,它可能不適用于您的硬件配置。
- 在“創(chuàng)建新數(shù)據(jù)源”對(duì)話框中,從列表框中選擇“SQL Server”,然后單擊“下一步”。
- 鍵入 DSN 文件的名稱,然后單擊“下一步”。
- 單擊“完成”創(chuàng)建數(shù)據(jù)源。
- 鍵入運(yùn)行 SQL 服務(wù)程序的服務(wù)器的名稱、登錄 ID 和密碼。
- 在“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”對(duì)話框中,在“服務(wù)器”列表框中鍵入包含 SQL Server 數(shù)據(jù)庫(kù)的服務(wù)器的名稱,然后單擊“下一步”。
- 選擇驗(yàn)證登錄 ID 的方式。
- 如果要選擇 SQL 服務(wù)器驗(yàn)證,請(qǐng)輸入一個(gè)登錄 ID 和密碼,然后單擊“下一步”。
- 在“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”對(duì)話框中,設(shè)置默認(rèn)數(shù)據(jù)庫(kù)、存儲(chǔ)過(guò)程設(shè)置的驅(qū)動(dòng)程序和 ANSI 標(biāo)識(shí),然后單擊“下一步”。(要獲取詳細(xì)信息,請(qǐng)單擊“幫助”。)
- 在對(duì)話框(同樣名為“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”)中,選擇一種字符轉(zhuǎn)換方法,然后單擊“下一步”。 (詳細(xì)信息,請(qǐng)單擊“幫助”。)
- 在下一個(gè)對(duì)話框(同樣名為“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”)中,選擇登錄設(shè)置。
注意 典型情況下, 您只能使用日志來(lái)調(diào)試數(shù)據(jù)庫(kù)訪問(wèn)問(wèn)題。 - 在“ODBC Microsoft SQL Server 安裝程序”對(duì)話框中,單擊“測(cè)試數(shù)據(jù)源”。如果 DSN 正確創(chuàng)建,“測(cè)試結(jié)果”對(duì)話框?qū)⒅赋鰷y(cè)試成功完成。
SQL server 連接和安全信息
如果您正在開(kāi)發(fā)用于連接遠(yuǎn)程 SQL Server 數(shù)據(jù)庫(kù)的 ASP 數(shù)據(jù)庫(kù)應(yīng)用程序,應(yīng)考慮以下問(wèn)題:- 連接方案- 您可以選擇 TCP/IP 套接字和命名管道的方法訪問(wèn)遠(yuǎn)程的 SQL Server 數(shù)據(jù)庫(kù)。當(dāng)使用命名管道時(shí),因?yàn)樵诮⑦B接之前,數(shù)據(jù)庫(kù)用戶必須被 Windows NT 確認(rèn),所以對(duì)只有適當(dāng)?shù)?/span> SQL Server 訪問(wèn)身份而在該計(jì)算機(jī)上沒(méi)有 Windows NT 用戶帳號(hào)的用戶可能會(huì)被拒絕訪問(wèn)命名管道。作為一種替代方案,使用 TCP/IP 套接字的連接可直接連接到數(shù)據(jù)庫(kù)服務(wù)器,而不必通過(guò)使用命名管道的中間計(jì)算機(jī)。因?yàn)槭褂?TCP/IP 套接字連接可直接連接到數(shù)據(jù)庫(kù) server,所以通過(guò) SQL Server 的確認(rèn),用戶就可以獲得訪問(wèn)權(quán),而不必通過(guò) Windows NT 的確認(rèn)。
注意 在連接到遠(yuǎn)程數(shù)據(jù)庫(kù)時(shí)使用 TCP/IP 套接字可提高性能。
- 安全性 - 如果您使用 SQL Server 的 集成或混合安全特性,并且 SQL Server 數(shù)據(jù)庫(kù)位于遠(yuǎn)程服務(wù)器上,則不能使用 Windows NT 請(qǐng)求/響應(yīng)的確認(rèn)。也就是說(shuō),不能將 Windows NT 請(qǐng)求/響應(yīng)身份證轉(zhuǎn)發(fā)到遠(yuǎn)程計(jì)算機(jī)上,而只能使用基本身份驗(yàn)證,它根據(jù)用戶提供用戶名和口令信息進(jìn)行。
有關(guān)這一主題的詳細(xì)信息,請(qǐng)參閱http://www.microsoft.com/sqlsupport/
上的 Microsoft SQL Server 技術(shù)支持主頁(yè)。
- 連接方案- 您可以選擇 TCP/IP 套接字和命名管道的方法訪問(wèn)遠(yuǎn)程的 SQL Server 數(shù)據(jù)庫(kù)。當(dāng)使用命名管道時(shí),因?yàn)樵诮⑦B接之前,數(shù)據(jù)庫(kù)用戶必須被 Windows NT 確認(rèn),所以對(duì)只有適當(dāng)?shù)?/span> SQL Server 訪問(wèn)身份而在該計(jì)算機(jī)上沒(méi)有 Windows NT 用戶帳號(hào)的用戶可能會(huì)被拒絕訪問(wèn)命名管道。作為一種替代方案,使用 TCP/IP 套接字的連接可直接連接到數(shù)據(jù)庫(kù)服務(wù)器,而不必通過(guò)使用命名管道的中間計(jì)算機(jī)。因?yàn)槭褂?TCP/IP 套接字連接可直接連接到數(shù)據(jù)庫(kù) server,所以通過(guò) SQL Server 的確認(rèn),用戶就可以獲得訪問(wèn)權(quán),而不必通過(guò) Windows NT 的確認(rèn)。
配置 Oracle 數(shù)據(jù)庫(kù)文件 DSN
首先要確保 Oracle 用戶軟件被正確地安裝要?jiǎng)?chuàng)建 DSN 的計(jì)算機(jī)上。詳細(xì)信息,請(qǐng)與服務(wù)器管理員聯(lián)系或參閱數(shù)據(jù)庫(kù)軟件文檔。
- 在“創(chuàng)建新數(shù)據(jù)源”對(duì)話框中,從列表框中選擇“Microsoft ODBC for Oracle”,然后單擊“下一步”。
- 鍵入 DSN 文件的名稱,然后單擊“下一步”。
- 單擊“完成”創(chuàng)建數(shù)據(jù)源。
- 輸入用戶名、密碼和服務(wù)器名,然后單擊“確定”。
注意 DSN 文件用 .dsn 擴(kuò)展名,位于 \Programs\Common Files\ODBC\Data Sources 目錄中。
有關(guān)創(chuàng)建 DSN 文件的詳細(xì)信息,請(qǐng)?jiān)L問(wèn) Microsoft ODBC Web 站點(diǎn):http://microsoft.com/odbc/。
====================================================
訪問(wèn)數(shù)據(jù)庫(kù)信息的第一步是和數(shù)據(jù)庫(kù)源建立連接。ADO 提供 Connection 對(duì)象,可以使用該對(duì)象建立和管理應(yīng)用程序和 ODBC 數(shù)據(jù)庫(kù)之間的連接。Connection 對(duì)象具有各種屬性和方法,可以使用它們打開(kāi)和關(guān)閉數(shù)據(jù)庫(kù)連接,并且發(fā)出查詢請(qǐng)求來(lái)更新信息。
要建立數(shù)據(jù)庫(kù)連接,首先應(yīng)創(chuàng)建 Connection 對(duì)象的實(shí)例。例如,下面的腳本創(chuàng)建 Connection 對(duì)象,接著打開(kāi)數(shù)據(jù)庫(kù)連接:
<% 'Create a connection object Set cn = Server.CreateObject("ADODB.Connection") 'Open a connection; the string refers to the DSN cn.Open "FILEDSN=MyDatabase.dsn" %>
注意 無(wú)論在等號(hào) (=) 之前還是之后,DSN 字符串都不能包含空格。
在這種情況下,Connection 對(duì)象的 Open 方法引用基于 DSN 的文件,其中包含關(guān)于數(shù)據(jù)庫(kù)的位置和配置信息。也可以不引用 DSN,直接顯式引用供應(yīng)程序、數(shù)據(jù)源、用戶 ID 和密碼。
連接過(guò)程
<% Set cn = Server.CreateObject("ADODB.Connection") '創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象 Set rsCustomers = Server.CreateObject("ADODB.Recordset") '創(chuàng)建數(shù)據(jù)庫(kù)查詢對(duì)象 cn.Open "FILEDSN=SQLlink.dsn" '打開(kāi)數(shù)據(jù)庫(kù) strSQL = "SELECT username,password FROM [myDatabase].[dbo].[user] where username='duguying'" rsCustomers.Open strSQL, cn '運(yùn)行SQL語(yǔ)句 %>
處理數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)
Set username1= rsCustomers("username") '獲取username字段的返回結(jié)果 Set password1= rsCustomers("password") '獲取password字段的返回結(jié)果 Do Until rsCustomers.EOF Response.Write username1 & " " & password1 & "<BR>" rsCustomers.MoveNext Loop '通過(guò)循環(huán)獲取所有返回記錄
相關(guān)文章
完美解決PJ的Cookies保存時(shí)限問(wèn)題!可選擇記錄登陸時(shí)長(zhǎng)!
完美解決PJ的Cookies保存時(shí)限問(wèn)題!可選擇記錄登陸時(shí)長(zhǎng)!...2007-02-02比較不錯(cuò)的asp模板引終極講解(WEB開(kāi)發(fā)之ASP模式)
比較不錯(cuò)的asp模板引終極講解(WEB開(kāi)發(fā)之ASP模式)...2007-08-08