摘要:微軟公司的ASP加上IIS為INTRANET應(yīng)用提供了一個(gè)靈活的構(gòu)建方法,它可以方便地訪問兼容的各種數(shù)據(jù)庫。使用ASP不僅意味著您可以讀取ACCESS和SQL SERVER的數(shù)據(jù)庫,同時(shí)也意第味著你可以讀取其他ODBC兼容的數(shù)據(jù)庫。文章給出了一些ASP與數(shù)據(jù)連接的方法并做了具體的實(shí)例研究,使大家能很方便的建立自己的基于WWW的網(wǎng)絡(luò)數(shù)據(jù)庫的應(yīng)用。
關(guān)鍵詞:ASP;數(shù)據(jù)庫;連接ODBC
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)25-1368-02
On the Connection of ASP with Database
WANG Hai-yan1, ZHANG Hua-gui2
(1. 65066 Troops of Jinzhou,Dalian Liaoning Province, Dalian 116100, China; 2. IT Department of Dalian Sanatorium, Dalian 116100, China)
Abstract: ASP as well as IIS introduced by Software Company provides us with a flexible building approach for the application of INTRTANET. It is accessible to various compatible databases. With ASP you cannot only read the Databasesuch as ACCESS and SQL SERVER but also ODBC and others.This article puts forward the way of ASP's connection with other databank and illustrates the practical researches, with the hope to make it easy for everyone to build up their own connection of www Internet database.
Key words: ASP; database; connection; ODBC
在Internet網(wǎng)上我們隨處可見BBS、留言板、動態(tài)網(wǎng)站等WEB功能模塊,在許多單位的小型局域網(wǎng)中也運(yùn)行著各種各樣的辦公自動化網(wǎng)絡(luò)系統(tǒng),這些程序很多是利用ASP技術(shù)與數(shù)據(jù)庫技術(shù)結(jié)合而實(shí)現(xiàn)的。在ASP中動態(tài)訪問和存取數(shù)據(jù)時(shí),頁面與數(shù)據(jù)庫源建立連接是最為重要的一步。目前常用的數(shù)據(jù)庫類型非常多,例如:Access、MySQL、FoxPro、SQL Server、Oracle等等,那么怎樣才能自由的連接到這些數(shù)據(jù)庫呢?我們下面就來介紹。
1 ASP的對象存取數(shù)據(jù)庫方法
在ASP中,用來存取數(shù)據(jù)庫的對象統(tǒng)稱ADO(Active Data Objects),ADO(ActiveX Data Object,ActiveX數(shù)據(jù)對象)是一個(gè)ASP內(nèi)置的ActiveX服務(wù)器組件(ActiveX Server Component),用于數(shù)據(jù)庫訪問,建立提供數(shù)據(jù)庫信息的網(wǎng)頁內(nèi)容,對數(shù)據(jù)庫進(jìn)行查詢、插入、更新、刪除等操作。
它主要包含下列對象:
Connection:代表與數(shù)據(jù)源的唯一會話。在使用客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng)的情況下,該對象可以等價(jià)于與服務(wù)器的實(shí)際網(wǎng)絡(luò)連接。Connection 對象的某些集合、方法或?qū)傩钥赡懿豢捎茫@取決于提供者支持的功能。
RecordSet:表示從基本表或命令執(zhí)行的結(jié)果所得到的整個(gè)記錄集合。所有Recordset對象均由記錄(行)和字段(列)組成。
Command:用來定義針對數(shù)據(jù)源運(yùn)行的具體命令,例如 SQL 查詢。
Record:表示來自Recordset或提供者的一行數(shù)據(jù)。該記錄可以表示數(shù)據(jù)庫記錄或某些其他類型的對象(例如文件或目錄),這取決于提供者。
Flow:表示數(shù)據(jù)的順序集合
Error:包含有關(guān)數(shù)據(jù)訪問錯誤的詳細(xì)信息,這些錯誤與涉及提供者的單個(gè)操作有關(guān)。Field:表示一個(gè)數(shù)據(jù)庫字段
Property:表示由提供者定義的 ADO 對象的特征。ADO 對象有兩種類型的屬性:內(nèi)置屬性和動態(tài)屬性。內(nèi)置屬性是指那些已在 ADO 中實(shí)現(xiàn)并且任何新對象可以立即使用的屬性。
Paramer:表示與基于參數(shù)化查詢或存儲過程的 Command 對象相關(guān)聯(lián)的參數(shù)。
Porperties:包含對象特定實(shí)例的所有 Property 對象。
2 連接各數(shù)據(jù)庫的驅(qū)動程序
連接各數(shù)據(jù)庫既可以使用驅(qū)動程序,也可以使用數(shù)據(jù)源(DataSource,不過需要你首先在Windows系統(tǒng)的控制面板里建立)。不過我建議大家使用驅(qū)動程序,因?yàn)槭褂抿?qū)動程序非常方便、簡單,而使用數(shù)據(jù)源就比較麻煩,當(dāng)你的ASP程序移植其它的計(jì)算機(jī)后需要重新建立數(shù)據(jù)源才能進(jìn)行訪問。
2.1 通過創(chuàng)建 ODBC DSN 來連接數(shù)據(jù)庫
通過在 Windows 的“開始”菜單打開“控制面板”,您可以創(chuàng)建基于 DSN 的文件。雙擊“ODBC”圖標(biāo),然后選擇“系統(tǒng) DSN”屬性頁,單擊“添加”,選擇數(shù)據(jù)庫驅(qū)動程序,然后單擊“下一步”。按照后面的指示配置適用于您的數(shù)據(jù)庫軟件的 DSN。常用的數(shù)據(jù)庫軟件有Microsoft Access和SQL Server等,這里以SQL Server 數(shù)據(jù)庫為例。
配置 SQL Server 數(shù)據(jù)庫系統(tǒng) DSN:注意如果數(shù)據(jù)庫駐留在遠(yuǎn)程服務(wù)器上,請與服務(wù)器管理員聯(lián)系,獲取附加的配置信息;下面的過程使用 SQL Server 的 ODBC 默認(rèn)的設(shè)置,它可能不適用于您的硬件配置。在“創(chuàng)建新數(shù)據(jù)源”對話框中,從列表框中選擇“SQL Server”,然后單擊“下一步”。鍵入 DSN 文件的名稱,然后單擊“下一步”。單擊“完成”創(chuàng)建數(shù)據(jù)源。鍵入運(yùn)行 SQL 服務(wù)程序的服務(wù)器的名稱、登錄 ID 和密碼。在“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”對話框中,在“服務(wù)器”列表框中鍵入包含 SQL Server 數(shù)據(jù)庫的服務(wù)器的名稱,然后單擊“下一步”。選擇驗(yàn)證登錄 ID 的方式。如果要選擇 SQL 服務(wù)器驗(yàn)證,請輸入一個(gè)登錄 ID 和密碼,然后單擊“下一步”。在“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”對話框中,設(shè)置默認(rèn)數(shù)據(jù)庫、存儲過程設(shè)置的驅(qū)動程序和 ANSI 標(biāo)識,然后單擊“下一步”。(要獲取詳細(xì)信息,請單擊“幫助”。)在對話框(同樣名為“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”)中,選擇一種字符轉(zhuǎn)換方法,然后單擊“下一步”。(詳細(xì)信息,請單擊“幫助”。)在下一個(gè)對話框(同樣名為“創(chuàng)建 SQL Server 的新數(shù)據(jù)源”)中,選擇登錄設(shè)置。 注意典型情況下, 您只能使用日志來調(diào)試數(shù)據(jù)庫訪問問題。 在“ODBC Microsoft SQL Server 安裝程序”對話框中,單擊“測試數(shù)據(jù)源”。如果 DSN 正確創(chuàng)建,“測試結(jié)果”對話框?qū)⒅赋鰷y試成功完成。
2.2 通過ODBC來連接各種數(shù)據(jù)庫
通過driver建立頁面與數(shù)據(jù)庫的連接,不需要創(chuàng)建ODBC DSN數(shù)據(jù)源,但必須使用數(shù)據(jù)庫文件路徑或者數(shù)據(jù)源名(例如:SQL Server的數(shù)據(jù)庫)才能進(jìn)行連接。
表1 ODBC鏈接
■
2.3 通過OLEDB來連接數(shù)據(jù)庫
運(yùn)用oledb方法建立頁面與數(shù)據(jù)庫的連接, 也不用創(chuàng)建 ODBC DSN數(shù)據(jù)源,直接使用如下的字符串和數(shù)據(jù)源建立連接,是一種簡單易用的方法。
表2 OLEDB鏈接
■
3 用ASP編程測試Access數(shù)據(jù)庫的標(biāo)準(zhǔn)連接方法
現(xiàn)在,我們在學(xué)習(xí)使用ASP進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)庫編程的時(shí)候,往往選擇Access數(shù)據(jù)庫來進(jìn)行測試,所以下面我們給出一個(gè)標(biāo)準(zhǔn)連接方法并進(jìn)行說明:
dim conn
set conn = server.createobject(\"adodb.connection\")
conn.open = \"provider=microsoft.jet.oledb.4.0;\" \"data source = \" server.mappath(\"../db/book.mdb\")
其中../db/ book.mdb是你的數(shù)據(jù)庫存放的相對路徑!如果你的數(shù)據(jù)庫和ASP文件在同一目錄下,你只要這樣寫就可以了:
dim conn
set conn = server.createobject(\"adodb.connection\")
conn.open = \"provider=microsoft.jet.oledb.4.0;\" \"data source = \" server.mappath(\"book.mdb\")
ASP和ADO技術(shù)結(jié)合起來,是一個(gè)非常好的Web數(shù)據(jù)庫訪問方案,它能很好地對解決對WEB數(shù)據(jù)庫的訪問操作。用這種方法來實(shí)現(xiàn)數(shù)據(jù)庫的的訪問操作具有如下優(yōu)點(diǎn):第一、支持ODBC、OLEDB,使數(shù)據(jù)庫可以與Web服務(wù)器分離。對于訪問一些大型異構(gòu)網(wǎng)上的數(shù)據(jù)庫信息將是很方便的。第二、使用Web技術(shù)來實(shí)現(xiàn)數(shù)據(jù)庫訪問操作,用戶可以制作出美觀的網(wǎng)頁、使人機(jī)界面更加友好。第三、ASP技術(shù)使用比較簡單,利用很短的時(shí)間學(xué)習(xí)后就可以進(jìn)行系統(tǒng)開發(fā)。
參考文獻(xiàn):
[1] 王國榮. Active Server Pages Web數(shù)據(jù)庫[M].北京:人民郵電出版社,1999.
[2] 數(shù)位文化. 網(wǎng)頁數(shù)據(jù)庫實(shí)例應(yīng)用寶典[M].北京:清華大學(xué)出版社,2001.
[3] 楊威. ASP 3.0 網(wǎng)絡(luò)開發(fā)技術(shù)[M].北京:人民郵電出版社,2000.
[4] 飛天創(chuàng)作組. ASP3.0動態(tài)網(wǎng)頁精彩制作[M].北京:人民郵電出版社,2001.