常用的數(shù)據(jù)庫訪問方式
發(fā)表時間:2024-06-04 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]ASP訪問數(shù)據(jù)庫的方式有哪些? 在ASP中可以通過三種方式訪問數(shù)據(jù)庫: 1、IDC(Internet Database Connector)方式; 2、ADO(ActiveX Data Objects)方式; 3、RDS(Remote Data Service)方式。 這三種訪問方式對數(shù)據(jù)庫的訪問...
ASP訪問數(shù)據(jù)庫的方式有哪些?
在ASP中可以通過三種方式訪問數(shù)據(jù)庫:
1、IDC(Internet Database Connector)方式;
2、ADO(ActiveX Data Objects)方式;
3、RDS(Remote Data Service)方式。
這三種訪問方式對數(shù)據(jù)庫的訪問都是由Internet Information Server完成的。通過Web瀏覽器用HTTP協(xié)議向IIS(Internet信息服務(wù)器)發(fā)送請求,IIS執(zhí)行對數(shù)據(jù)庫的訪問,并返回一個HTML格式的文檔響應(yīng)。下面分別說明:
1、IDC(Internet數(shù)據(jù)庫接口)
IDC是一個傳統(tǒng)的數(shù)據(jù)庫查詢工具,用來定義和執(zhí)行數(shù)據(jù)庫查詢的SQL命令,并向?yàn)g覽器返回一個指定數(shù)據(jù)格式的頁面。使用IDC訪問數(shù)據(jù)庫最大的特點(diǎn)是簡單,幾乎不需要編程就能實(shí)現(xiàn)對數(shù)據(jù)庫的訪問。
IDC使用兩種文件來控制如何訪問數(shù)據(jù)庫以及如何創(chuàng)建返回的Web頁面:IDC (.idc)文件和HTML擴(kuò)展(.htx)文件。.idc文件必須包括ODBC數(shù)據(jù)源(Datasource)、HTML擴(kuò)展文件的文件名(Template)以及要執(zhí)行的SQL語句(SQLStatement)。此外還有許多可選字段,可以根據(jù)需要選用。
.htx文件是帶有用<%%>或<!--%%-->括起來的附加標(biāo)記的HTML文檔,IDC用這些標(biāo)記將動態(tài)數(shù)據(jù)添加到文檔中。在.htx文件中有六個關(guān)鍵字(begindetail、enddetail、if、else、endif和"%z"),用來控制數(shù)據(jù)庫中的數(shù)據(jù)怎樣和.htx文件中HTML格式進(jìn)行合并。數(shù)據(jù)庫列名說明HTML文檔中什么數(shù)據(jù)被返回。
要執(zhí)行IDC查詢,通常的做法是在HTML文件中嵌入一個.idc文件的連接。例如,我們可用下面的HTML語句向Web服務(wù)器發(fā)出請求,要求執(zhí)行idctest.idc文件:
<A HREF="http://LocalHost/idctest/idctest/idctest.idc">查詢</A>
當(dāng)Web服務(wù)器接到請求后,就調(diào)用Httpodbc.dll(IDC),與一定的數(shù)據(jù)源相連并把SQL命令傳給數(shù)據(jù)庫。當(dāng)SQL語句被執(zhí)行后,IDC把返回的數(shù)據(jù)融入到.htx文件中。IDC再把這個文檔返回給Web服務(wù)器,Web服務(wù)器再返回給瀏覽器。
2、ADO(ActiveX數(shù)據(jù)對象)
ADO訪問數(shù)據(jù)庫,更像編寫數(shù)據(jù)庫應(yīng)用程序。它把絕大部分的數(shù)據(jù)庫操作封裝在七個對象中,在ASP頁面中編程調(diào)用這些對象執(zhí)行相應(yīng)的數(shù)據(jù)庫操作。
ADO是ASP技術(shù)的核心之一,它集中體現(xiàn)了ASP技術(shù)豐富而靈活的數(shù)據(jù)庫訪問功能。ADO建立了基于Web方式訪問數(shù)據(jù)庫的腳本編寫模型,不僅支持任何大型數(shù)據(jù)庫的核心功能,而且支持許多數(shù)據(jù)庫所專有的特性。
ADO使用本機(jī)數(shù)據(jù)源,通過ODBC訪問數(shù)據(jù)庫。這些數(shù)據(jù)庫可以是關(guān)系型數(shù)據(jù)庫、文本型數(shù)據(jù)庫、層次型數(shù)據(jù)庫或者任何支持ODBC的數(shù)據(jù)庫。主要優(yōu)點(diǎn)是易用、高速、占用內(nèi)存和磁盤空間少,所以非常適合于作為服務(wù)器端的數(shù)據(jù)庫訪問技術(shù)。相對于訪問數(shù)據(jù)庫的CGI程序而言,它是多線程的,在出現(xiàn)大量并發(fā)請求時,也同樣可以保持服務(wù)器的運(yùn)行效率,并且通過連接池(Connection Pool)技術(shù)以及對數(shù)據(jù)庫連接資源的完全控制,提供與遠(yuǎn)程數(shù)據(jù)庫的高效連接與訪問,同時它還支持事務(wù)處理(Transaction),以開發(fā)高效率、高可靠性的數(shù)據(jù)庫應(yīng)用程序。
一般使用ADO訪問數(shù)據(jù)庫的ASP腳本程序應(yīng)該使用Connection對象建立并管理與遠(yuǎn)程數(shù)據(jù)庫的連接,用Command對象提供靈活的查詢,用Recordset對象訪問數(shù)據(jù)庫查詢所返回的結(jié)果。這三者是ADO的最核心的對象。
與IDC一樣,運(yùn)行該數(shù)據(jù)庫訪問腳本的通常做法是在HTML文件中嵌入一個.asp文件的連接。如,用HTML語句向Web服務(wù)器發(fā)出請求,要求執(zhí)行intels.asp文件:
<A HREF="http://LocalHost/idctest/ado/intels.asp">查詢</A>
3、RDS(遠(yuǎn)程數(shù)據(jù)服務(wù))
RDS在IIS 4.0中,與ADO集成到一起,使用同樣的編程模型,提供訪問遠(yuǎn)程數(shù)據(jù)庫的功能。ADO雖然能夠提供非常強(qiáng)大的數(shù)據(jù)庫訪問功能,但是它不支持?jǐn)?shù)據(jù)遠(yuǎn)程操作(Data Remoting)。它只能執(zhí)行查詢并返回?cái)?shù)據(jù)庫查詢的結(jié)果,這種結(jié)果是靜態(tài)的,服務(wù)器上的數(shù)據(jù)庫與客戶端看到的數(shù)據(jù)沒有活的連接關(guān)系。如果用戶端需要修改數(shù)據(jù)庫,就必須構(gòu)造修改數(shù)據(jù)的SQL語句,并執(zhí)行相應(yīng)的查詢。而RDS支持?jǐn)?shù)據(jù)遠(yuǎn)程操作。它不僅能執(zhí)行查詢并返回?cái)?shù)據(jù)庫查詢結(jié)果,而且可以把服務(wù)器端的數(shù)據(jù)“搬到”用戶端修改,并調(diào)用一個數(shù)據(jù)庫更新命令,將用戶端修改的數(shù)據(jù)寫回?cái)?shù)據(jù)庫,象使用本地?cái)?shù)據(jù)庫一樣。
RDS的底層是調(diào)用ADO來完成的,同樣具有ADO的易用性,區(qū)別僅在于RDS需要與數(shù)據(jù)綁定控件一同使用,比如Sheridan的ActiveX DataBound Grid控件。正如ADO類似于VB中的RDO一樣,RDS也類似于VB中的遠(yuǎn)程數(shù)據(jù)控件(RDC)。
RDS在ADO的基礎(chǔ)上通過綁定的數(shù)據(jù)顯示和操作控件,提供給客戶端更強(qiáng)的數(shù)據(jù)表現(xiàn)力和遠(yuǎn)程數(shù)據(jù)操縱功能?梢哉fRDS是目前基于Web的最好的遠(yuǎn)程數(shù)據(jù)庫訪問方式。