999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB訪問(wèn)數(shù)據(jù)庫(kù)的方法及接口的比較

2008-12-31 00:00:00
考試周刊 2008年11期

摘 要:本文介紹了幾種Visual Basic訪問(wèn)數(shù)據(jù)庫(kù)的方法,對(duì)這些數(shù)據(jù)接口的性能進(jìn)行了比較,并提出相互的轉(zhuǎn)化關(guān)系。

關(guān)鍵詞:Visual Basic 數(shù)據(jù)訪問(wèn)接口 DAO RDO ADO

一、VB訪問(wèn)數(shù)據(jù)庫(kù)的方法

VB訪問(wèn)數(shù)據(jù)庫(kù)的方法很多,一般情況下分成兩大類,而每一類又有很多方法。下面以列表的方式列出每一類及每一類包含的方法。

1.接口對(duì)象法(API)

VBSQL:通過(guò)DB-Library訪問(wèn)微軟的SQL Server

ODBC API:任何一種ODBC數(shù)據(jù)源16位和32位

DAO/Jet:本地的Jet/Access.MDB、順序索引數(shù)據(jù)庫(kù)(ISAM)和任何ODBC數(shù)據(jù)源

DAO/ODBC Direct:任何一種ODBC數(shù)據(jù)源(經(jīng)過(guò)RDO)

RDO 2.0:任何一種ODBC數(shù)據(jù)源(LevelⅠ或Ⅱ)

ADO:任何一種ODBC數(shù)據(jù)源和任何經(jīng)過(guò)OLE DB界面接口的數(shù)據(jù)源

2.數(shù)據(jù)控件法

Data Control:DAO/Jet數(shù)據(jù)界面接口

Data Control/ODBC Direct:DAO/ODBC Direct數(shù)據(jù)界面接口

RemoteData Control/RDC:RDO數(shù)據(jù)界面接口

Advanced Data Connector/ADC:ADO數(shù)據(jù)界面接口

二、幾種接口的比較

1.ADC(Advanced Data Connector):高級(jí)數(shù)據(jù)連接器。提供綁定ADO數(shù)據(jù)源到窗體的數(shù)據(jù)綁定控件上。ADC主要是一種直接訪問(wèn)或者通過(guò)ADO訪問(wèn)遠(yuǎn)程OLE DB對(duì)象的一種技術(shù),它也支持主要應(yīng)用在微軟IE瀏覽器上的數(shù)據(jù)綁定控件。它是特地為Web上的瀏覽器為基礎(chǔ)的應(yīng)用程序而設(shè)計(jì)的。

2.ADO(Active Data Objects):Active數(shù)據(jù)對(duì)象。是DAO/RDO的后繼產(chǎn)物。ADO“擴(kuò)展”了DAO和RDO所使用的對(duì)象模型,這意味著它包含較少的對(duì)象,更多的屬性、方法(和參數(shù))以及事件。ADO實(shí)際是一種提供訪問(wèn)各種數(shù)據(jù)類型的連接機(jī)制。ADO設(shè)計(jì)為一種極簡(jiǎn)單的格式,通過(guò)ODBC的方法同數(shù)據(jù)庫(kù)接口??梢允褂萌魏我环NODBC數(shù)據(jù)源,即不止適合于SQL Server、Oracle、Access等數(shù)據(jù)庫(kù)應(yīng)用程序,也適合于Excel表格、文本文件、圖形文件和無(wú)格式的數(shù)據(jù)文件,是一個(gè)便于使用的應(yīng)用程序?qū)咏涌?。ADO是為Microsoft最新和最強(qiáng)大的數(shù)據(jù)訪問(wèn)范例OLE DB而設(shè)計(jì)的,OLE DB為任何數(shù)據(jù)源提供了高性能的訪問(wèn),這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫(kù)、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對(duì)象等等。ADO在關(guān)鍵的Internet方案中使用最少的網(wǎng)絡(luò)流量,并且在前端和數(shù)據(jù)源之間使用最少的層數(shù),所有這些都是為了提供輕量、高性能的接口。因此ADO通過(guò)其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問(wèn)接口方法。

3.DAO(Data Access Objects):數(shù)據(jù)訪問(wèn)對(duì)象。是一種面向?qū)ο蟮慕缑娼涌?。通過(guò)DAO/Jet功能可以訪問(wèn)ISAM數(shù)據(jù)庫(kù),使用DAO/ODBC Direct功能可以實(shí)現(xiàn)遠(yuǎn)程RDO功能。使用DAO的程序編碼非常簡(jiǎn)單,DAO提供豐富的游標(biāo)(Cursor)類型的結(jié)果集和非游標(biāo)(Cursor-Less)類型的結(jié)果集,同DDL(數(shù)據(jù)描述語(yǔ)言)的功能很類似。DAO可通過(guò)ODBC像直接連接到其它數(shù)據(jù)庫(kù)一樣,直接連接到Access數(shù)據(jù)庫(kù)。DAO最適用于單系統(tǒng)應(yīng)用程序或小范圍本地分布使用。DAO模型是設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)的對(duì)象類的集合。它們提供了完成管理這樣一個(gè)系統(tǒng)所需的全部操作的屬性和方法,包括創(chuàng)建數(shù)據(jù)庫(kù),定義表、字段和索引,建立表間的關(guān)系,定位和查詢數(shù)據(jù)庫(kù)等工具。

4.JET(Joint Engine Technology):數(shù)據(jù)連接性引擎技術(shù)。是一種基于工作站通過(guò)DAO的數(shù)據(jù)庫(kù)訪問(wèn)機(jī)制。雖然可以通過(guò)微軟Access提供的ODBC驅(qū)動(dòng)程序訪問(wèn)Jet數(shù)據(jù)庫(kù),但使用這些驅(qū)動(dòng)程序在功能上有所限制。Jet機(jī)制有自己的查詢和結(jié)果集處理功能,并可對(duì)同種或異種數(shù)據(jù)源作查詢處理。

5.0DBC(Open Database Connectivity):開(kāi)放式的數(shù)據(jù)庫(kù)連接技術(shù)。為異種數(shù)據(jù)庫(kù)的訪問(wèn)提供了統(tǒng)一的接口。ODBC基于SQL(Structured Query Language),并把它作為訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)。這個(gè)接口提供了最大限度的相互可操作性:一個(gè)應(yīng)用程序可以通過(guò)一組通用的代碼訪問(wèn)不同的數(shù)據(jù)庫(kù)管理系統(tǒng)。一個(gè)軟件開(kāi)發(fā)者開(kāi)發(fā)的客戶/服務(wù)器應(yīng)用程序不會(huì)被束定于某個(gè)特定的數(shù)據(jù)庫(kù)之上。ODBC可以為不同的數(shù)據(jù)庫(kù)提供相應(yīng)的驅(qū)動(dòng)程序,是一種公認(rèn)的關(guān)系數(shù)據(jù)源的接口界面。它快而輕,并且提供統(tǒng)一接口的界面,ODBC對(duì)任何數(shù)據(jù)源都未作優(yōu)化。

6.ODBC API:數(shù)據(jù)庫(kù)廠商為程序設(shè)計(jì)者提供的直接訪問(wèn)數(shù)據(jù)庫(kù)的一組函數(shù)。注意:這里要指出的是,雖然ODBC API提供了很多很方便而且強(qiáng)大的功能,但是通常來(lái)說(shuō)ODBC API都比較難學(xué),而且使用很容易出錯(cuò)。雖然允許用ODBC API來(lái)操作ODBC句柄,但還是要小心,如果不正確地使用ODBC API,可能會(huì)導(dǎo)致不可預(yù)知的錯(cuò)誤。例如,假如使用ODBC API代碼來(lái)關(guān)閉連接或釋放這些ODBC句柄中的任何一個(gè),那么RemoteData控件或RDO的行為將是不可預(yù)知的。保存ODBC句柄以供備用也是沒(méi)有意義的,因?yàn)樗鼈兪强勺兊摹?/p>

7.ODBC Direct:是一種基于DAO對(duì)象的新的DAO模式,其方法和屬性與RDO功能相同。使用在有DAO代碼存在的場(chǎng)合,可用來(lái)訪問(wèn)遠(yuǎn)程數(shù)據(jù)源。

8.OLE DB:是COM模型的數(shù)據(jù)庫(kù)接口。是一種底層數(shù)據(jù)訪問(wèn)界面接口。是用于第三方驅(qū)動(dòng)程序商家開(kāi)發(fā)輸出數(shù)據(jù)源到ADO技術(shù)的應(yīng)用程序或用于C++的開(kāi)發(fā)者開(kāi)發(fā)定制的數(shù)據(jù)庫(kù)組件。它能夠處理任何類型的數(shù)據(jù)。OLE DB向應(yīng)用程序提供一個(gè)統(tǒng)一的數(shù)據(jù)訪問(wèn)方法,而不考慮它們的格式和存儲(chǔ)方法。在實(shí)際應(yīng)用中,這種多樣性意味著可以訪問(wèn)駐留在電子數(shù)據(jù)表、文本文件甚至郵件服務(wù)器,諸如Microsoft Exchang中的數(shù)據(jù)。OLE DB不能被VB直接調(diào)用。

9.RDC(RemoteData Control):遠(yuǎn)程數(shù)據(jù)訪問(wèn)控件。是一種對(duì)RDO數(shù)據(jù)綁定的控件??梢暂敵鎏囟ǖ慕Y(jié)果集到數(shù)據(jù)源控件。

10.RDO(Remote Data Objects):遠(yuǎn)程數(shù)據(jù)對(duì)象。是一個(gè)到ODBC的、面向?qū)ο蟮臄?shù)據(jù)訪問(wèn)接口,遠(yuǎn)程數(shù)據(jù)對(duì)象和集合為使用代碼來(lái)創(chuàng)建和操作一個(gè)遠(yuǎn)程ODBC數(shù)據(jù)庫(kù)系統(tǒng)的各個(gè)部件提供了一個(gè)框架。對(duì)象和集合都具有描述數(shù)據(jù)庫(kù)的各個(gè)部件特征的屬性以及用來(lái)操作這些部件的方法。可以在對(duì)象和集合之間建立起關(guān)系,這些關(guān)系就代表了數(shù)據(jù)庫(kù)系統(tǒng)的邏輯結(jié)構(gòu)。它同易于使用的DAO style組合在一起,提供了1個(gè)接口,形式上展示出所有ODBC的底層功能和靈活性。RDO是ODBC API的一個(gè)淺層界面接口。是專為訪問(wèn)遠(yuǎn)程ODBC關(guān)系數(shù)據(jù)源而設(shè)計(jì)的。盡管RDO在訪問(wèn)Jet或ISAM數(shù)據(jù)庫(kù)方面受到限制,而且它只能通過(guò)現(xiàn)存的ODBC驅(qū)動(dòng)程序來(lái)訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)。但是,RDO已被證明是許多SQL Server、Oracle以及其他大型關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)者經(jīng)常選用的最佳接口。RDO提供了用來(lái)訪問(wèn)存儲(chǔ)過(guò)程和復(fù)雜結(jié)果集的更多和更復(fù)雜的對(duì)象、屬性以及方法。

11.VBSQL:是Visual Basic結(jié)構(gòu)化查詢語(yǔ)言。是一種基于API的接口方法,幾乎與C的DB-Library API相同。VBSQL只支持微軟的SQL Server。VBSQL快而且輕,但不支持對(duì)象界面。

三、性能比較及應(yīng)用說(shuō)明

用VB開(kāi)發(fā)基于SQL Server的數(shù)據(jù)庫(kù)系統(tǒng),以上幾種訪問(wèn)SQL Server的方法各有各的特點(diǎn)。DAOs方法是基于對(duì)象的,因而便于使用,但它是從Visual Basic到SQL Server的最慢的方式。ODBC API和VBSQL方法從本質(zhì)上講是基于程序的。ODBC API方法通用性好,允許最強(qiáng)的互操作性,編程簡(jiǎn)單,但速度慢于VBSQL方法。VBSQL方法通過(guò)VBSQL控件,提供了重要的SQL Server前端應(yīng)用程序所需的靈活性、強(qiáng)大功能和良好性能。它具有真正的事件驅(qū)動(dòng)及錯(cuò)誤處理能力,完全支持異步處理、游標(biāo)和計(jì)算列等。這些都是VBSQL方法超出其它方法的優(yōu)勢(shì),但其編程稍復(fù)雜。RDO是位于ODBC API之上的一個(gè)對(duì)象模型層,它依賴ODBC API、ODBC驅(qū)動(dòng)程序以及后端數(shù)據(jù)庫(kù)引擎來(lái)實(shí)現(xiàn),用RDO所需的程序短?。s250KB)、快速。RDO具備基本的ODBC處理方法,可直接執(zhí)行大多數(shù)ODBC API函數(shù),RDO包含在VB 4.0/VB 5.0企業(yè)版中,由MSRDO32.DLL動(dòng)態(tài)連接庫(kù)來(lái)實(shí)現(xiàn)。RDO是綜合了DAO/Jet、VBSQL/DBLib和ODBC的優(yōu)點(diǎn)的對(duì)象模型,包含ODBC API應(yīng)用層,設(shè)計(jì)為在后臺(tái)(服務(wù)器端)有數(shù)據(jù)庫(kù)存在的前提下運(yùn)行,是針對(duì)SQL Server和Oracle而特別設(shè)計(jì)的。RDO的優(yōu)勢(shì)在于它完全被集成在VB之中,可直接訪問(wèn)SQL Server存儲(chǔ)過(guò)程、完全支持T-SQL、T-SQL調(diào)試集成在開(kāi)發(fā)環(huán)境中、Visual Database Tools的集成化等。但微軟已宣布今后不再對(duì)VBSQL/DBLib進(jìn)行升級(jí),而ODBC API函數(shù)一般的編程方式也不為人們所喜愛(ài),RDO的應(yīng)用將逐漸減少。至于實(shí)際使用哪一種接口方式,在很大程度上依賴于用戶的應(yīng)用程序的具體情況而定。

四、VB訪問(wèn)數(shù)據(jù)庫(kù)的原則

應(yīng)用VB訪問(wèn)數(shù)據(jù)庫(kù)時(shí),要具體問(wèn)題具體分析,根據(jù)具體的環(huán)境、條件、要求而采用適當(dāng)?shù)姆桨?,就?yīng)注意以下幾個(gè)原則:

1.代碼的重用和運(yùn)行的效率

例如:通過(guò)使用ODBC數(shù)據(jù)源連接數(shù)據(jù)庫(kù)的方法,可在變換多種數(shù)據(jù)庫(kù)類型的情況下,而不用頻繁修改代碼。用VBSQL通過(guò)DB-Library就做不到。而ODBC接口并不是VB訪問(wèn)數(shù)據(jù)庫(kù)運(yùn)行效率最高的方法。同樣,同是使用ODBC接口的ADO的效率要高于RDO。

2.實(shí)現(xiàn)的簡(jiǎn)便性、易維護(hù)性

如果一種方法實(shí)現(xiàn)起來(lái)很復(fù)雜,工程的開(kāi)發(fā)必然造成人力物力的浪費(fèi),同時(shí)這樣設(shè)計(jì)出來(lái)的應(yīng)用程序只會(huì)支持起來(lái)更復(fù)雜或維護(hù)時(shí)更困難。例如:本地需要訪問(wèn)ISAM或Jet類型數(shù)據(jù)源,那么就使用DAO/Jet,而沒(méi)有必要使用通過(guò)ODBC的方法。RDC實(shí)現(xiàn)起來(lái)要較RDO更容易。

3.安全性

這一條應(yīng)根據(jù)環(huán)境和條件決定。例如局域網(wǎng)的網(wǎng)絡(luò)安全性要好于廣域網(wǎng)因而可直接利用數(shù)據(jù)控件如RDC,這樣實(shí)現(xiàn)起來(lái)方便快捷,而廣域網(wǎng)需要大量的錯(cuò)誤捕獲,如用RDC就不如用RDO易控制錯(cuò)誤。

五、結(jié)束語(yǔ)

在數(shù)據(jù)訪問(wèn)接口中DAO最適用于單系統(tǒng)應(yīng)用程序或小范圍本地分布使用,而RDO已被證明是許多SQL Server、Oracle以及其它大型關(guān)系數(shù)據(jù)庫(kù)開(kāi)發(fā)者經(jīng)常選用的最佳接口。ADO是DAO/RDO的后繼產(chǎn)物。ADO 2.0在功能上與RDO更相似,而且一般來(lái)說(shuō),在這2種模型之間有一種相似的映射關(guān)系。ADO“擴(kuò)展”了DAO和RDO所使用的對(duì)象模型,這意味著它包含較少的對(duì)象、更多的屬性、方法和參數(shù),以及事件。

數(shù)據(jù)庫(kù)接口中最新的是ADO,它是比RDO和DAO更加簡(jiǎn)單、更加靈活的對(duì)象模型。對(duì)于新工程,應(yīng)該使用ADO作為數(shù)據(jù)訪問(wèn)接口。

不過(guò),ADO并不是自動(dòng)和現(xiàn)存的數(shù)據(jù)訪問(wèn)應(yīng)用程序代碼兼容的。當(dāng)ADO封裝DAO和RDO的功能性的時(shí)候,必須將許多語(yǔ)言要素轉(zhuǎn)換為ADO語(yǔ)法。在某些情況下,這將意味著現(xiàn)存代碼的某些功能的1個(gè)簡(jiǎn)單轉(zhuǎn)換。在其它情況下,最佳的做法可能是用ADO的新功能重寫(xiě)該應(yīng)用程序。同時(shí)要注意的是,ADO當(dāng)前并不支持DAO的所有功能。ADO主要包括RDO風(fēng)格的功能性,以便和OLE DB數(shù)據(jù)源交互,另外還包括遠(yuǎn)程和DHTML技術(shù)。

一般說(shuō)來(lái),在ADO的演化過(guò)程中,馬上把大多數(shù)DAO應(yīng)用程序移植到ADO上可能為時(shí)太早,因?yàn)楫?dāng)前的ADO并不支持?jǐn)?shù)據(jù)定義(DDL)、用戶、組等。不過(guò),如果只將DAO用于客戶/服務(wù)器應(yīng)用程序,而并不依賴于Jet數(shù)據(jù)庫(kù)引擎或不使用DDL,那么現(xiàn)在就可以移植到ADO。

參考文獻(xiàn):

[1]宋琦凡,付敬平,使用Visual Basic開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用軟件,北京:電子工業(yè)出版社,1996.

[2]Evangelos Petroutsos,Visual Basic5從入門到精通,北京:電子工業(yè)出版社,1997.

[3]孟小峰,開(kāi)放數(shù)據(jù)庫(kù)互連——ODBC 2.0使用大全,北京:清華大學(xué)出版社,1995.

[4]廖衛(wèi)東,趙軍.Visual Basic編程手冊(cè),北京:機(jī)械工業(yè)出版社,1996.

主站蜘蛛池模板: 日韩无码精品人妻| 影音先锋丝袜制服| 狠狠亚洲婷婷综合色香| 在线日韩日本国产亚洲| 日韩二区三区| 午夜视频在线观看区二区| 成年人国产视频| 99热这里只有精品国产99| 1024国产在线| 亚洲性一区| 国产91高跟丝袜| 一级毛片高清| 谁有在线观看日韩亚洲最新视频| 国产福利一区在线| 国产sm重味一区二区三区| 在线无码av一区二区三区| 国产一级视频久久| 婷婷色一区二区三区| 成人一级黄色毛片| 欧美日韩国产精品综合| 欧美三级视频网站| 亚洲综合久久成人AV| 韩国福利一区| 国产成人禁片在线观看| 国产精品伦视频观看免费| 国产精品中文免费福利| 亚洲国产中文在线二区三区免| 国产青青操| 国产成人乱无码视频| 国产91特黄特色A级毛片| 一区二区三区成人| 福利一区在线| 91在线视频福利| 一级香蕉视频在线观看| 国产精品久久久久久久久久98| 在线中文字幕网| 91在线日韩在线播放| 国产区人妖精品人妖精品视频| 国产亚洲视频免费播放| 色偷偷综合网| 欧美高清视频一区二区三区| 久久一级电影| 亚洲午夜国产精品无卡| 亚洲人成网站在线观看播放不卡| 国产精品久久久久婷婷五月| 日韩精品毛片人妻AV不卡| 亚洲国产精品美女| 亚洲区欧美区| 精品99在线观看| 手机看片1024久久精品你懂的| 欧美一级在线播放| vvvv98国产成人综合青青| 美女视频黄又黄又免费高清| 日本91视频| 久99久热只有精品国产15| 激情视频综合网| 亚洲综合激情另类专区| 强奷白丝美女在线观看| 国产精品lululu在线观看| 免费一看一级毛片| 亚洲精品成人福利在线电影| 欧美成人精品一区二区| 国产欧美日韩va另类在线播放| 日本亚洲国产一区二区三区| 欧美成人怡春院在线激情| 亚洲性影院| 极品av一区二区| 99色亚洲国产精品11p| 亚洲天堂精品在线观看| 国产综合色在线视频播放线视| 午夜日b视频| 亚洲成av人无码综合在线观看| 99精品这里只有精品高清视频| 国产高潮流白浆视频| 国产成人综合在线观看| 91最新精品视频发布页| 久久午夜影院| 国产高清在线丝袜精品一区| 精品无码日韩国产不卡av| 欧美一级视频免费| 亚洲国产成人综合精品2020| 国产原创演绎剧情有字幕的|