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

VB訪問數據庫的方法及接口的比較

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

摘 要:本文介紹了幾種Visual Basic訪問數據庫的方法,對這些數據接口的性能進行了比較,并提出相互的轉化關系。

關鍵詞:Visual Basic 數據訪問接口 DAO RDO ADO

一、VB訪問數據庫的方法

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

1.接口對象法(API)

VBSQL:通過DB-Library訪問微軟的SQL Server

ODBC API:任何一種ODBC數據源16位和32位

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

DAO/ODBC Direct:任何一種ODBC數據源(經過RDO)

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

ADO:任何一種ODBC數據源和任何經過OLE DB界面接口的數據源

2.數據控件法

Data Control:DAO/Jet數據界面接口

Data Control/ODBC Direct:DAO/ODBC Direct數據界面接口

RemoteData Control/RDC:RDO數據界面接口

Advanced Data Connector/ADC:ADO數據界面接口

二、幾種接口的比較

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

2.ADO(Active Data Objects):Active數據對象。是DAO/RDO的后繼產物。ADO“擴展”了DAO和RDO所使用的對象模型,這意味著它包含較少的對象,更多的屬性、方法(和參數)以及事件。ADO實際是一種提供訪問各種數據類型的連接機制。ADO設計為一種極簡單的格式,通過ODBC的方法同數據庫接口。可以使用任何一種ODBC數據源,即不止適合于SQL Server、Oracle、Access等數據庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數據文件,是一個便于使用的應用程序層接口。ADO是為Microsoft最新和最強大的數據訪問范例OLE DB而設計的,OLE DB為任何數據源提供了高性能的訪問,這些數據源包括關系和非關系數據庫、電子郵件和文件系統、文本和圖形、自定義業務對象等等。ADO在關鍵的Internet方案中使用最少的網絡流量,并且在前端和數據源之間使用最少的層數,所有這些都是為了提供輕量、高性能的接口。因此ADO通過其內部的屬性和方法提供統一的數據訪問接口方法。

3.DAO(Data Access Objects):數據訪問對象。是一種面向對象的界面接口。通過DAO/Jet功能可以訪問ISAM數據庫,使用DAO/ODBC Direct功能可以實現遠程RDO功能。使用DAO的程序編碼非常簡單,DAO提供豐富的游標(Cursor)類型的結果集和非游標(Cursor-Less)類型的結果集,同DDL(數據描述語言)的功能很類似。DAO可通過ODBC像直接連接到其它數據庫一樣,直接連接到Access數據庫。DAO最適用于單系統應用程序或小范圍本地分布使用。DAO模型是設計關系數據庫系統結構的對象類的集合。它們提供了完成管理這樣一個系統所需的全部操作的屬性和方法,包括創建數據庫,定義表、字段和索引,建立表間的關系,定位和查詢數據庫等工具。

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

5.0DBC(Open Database Connectivity):開放式的數據庫連接技術。為異種數據庫的訪問提供了統一的接口。ODBC基于SQL(Structured Query Language),并把它作為訪問數據庫的標準。這個接口提供了最大限度的相互可操作性:一個應用程序可以通過一組通用的代碼訪問不同的數據庫管理系統。一個軟件開發者開發的客戶/服務器應用程序不會被束定于某個特定的數據庫之上。ODBC可以為不同的數據庫提供相應的驅動程序,是一種公認的關系數據源的接口界面。它快而輕,并且提供統一接口的界面,ODBC對任何數據源都未作優化。

6.ODBC API:數據庫廠商為程序設計者提供的直接訪問數據庫的一組函數。注意:這里要指出的是,雖然ODBC API提供了很多很方便而且強大的功能,但是通常來說ODBC API都比較難學,而且使用很容易出錯。雖然允許用ODBC API來操作ODBC句柄,但還是要小心,如果不正確地使用ODBC API,可能會導致不可預知的錯誤。例如,假如使用ODBC API代碼來關閉連接或釋放這些ODBC句柄中的任何一個,那么RemoteData控件或RDO的行為將是不可預知的。保存ODBC句柄以供備用也是沒有意義的,因為它們是可變的。

7.ODBC Direct:是一種基于DAO對象的新的DAO模式,其方法和屬性與RDO功能相同。使用在有DAO代碼存在的場合,可用來訪問遠程數據源。

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

9.RDC(RemoteData Control):遠程數據訪問控件。是一種對RDO數據綁定的控件。可以輸出特定的結果集到數據源控件。

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

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

三、性能比較及應用說明

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

四、VB訪問數據庫的原則

應用VB訪問數據庫時,要具體問題具體分析,根據具體的環境、條件、要求而采用適當的方案,就應注意以下幾個原則:

1.代碼的重用和運行的效率

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

2.實現的簡便性、易維護性

如果一種方法實現起來很復雜,工程的開發必然造成人力物力的浪費,同時這樣設計出來的應用程序只會支持起來更復雜或維護時更困難。例如:本地需要訪問ISAM或Jet類型數據源,那么就使用DAO/Jet,而沒有必要使用通過ODBC的方法。RDC實現起來要較RDO更容易。

3.安全性

這一條應根據環境和條件決定。例如局域網的網絡安全性要好于廣域網因而可直接利用數據控件如RDC,這樣實現起來方便快捷,而廣域網需要大量的錯誤捕獲,如用RDC就不如用RDO易控制錯誤。

五、結束語

在數據訪問接口中DAO最適用于單系統應用程序或小范圍本地分布使用,而RDO已被證明是許多SQL Server、Oracle以及其它大型關系數據庫開發者經常選用的最佳接口。ADO是DAO/RDO的后繼產物。ADO 2.0在功能上與RDO更相似,而且一般來說,在這2種模型之間有一種相似的映射關系。ADO“擴展”了DAO和RDO所使用的對象模型,這意味著它包含較少的對象、更多的屬性、方法和參數,以及事件。

數據庫接口中最新的是ADO,它是比RDO和DAO更加簡單、更加靈活的對象模型。對于新工程,應該使用ADO作為數據訪問接口。

不過,ADO并不是自動和現存的數據訪問應用程序代碼兼容的。當ADO封裝DAO和RDO的功能性的時候,必須將許多語言要素轉換為ADO語法。在某些情況下,這將意味著現存代碼的某些功能的1個簡單轉換。在其它情況下,最佳的做法可能是用ADO的新功能重寫該應用程序。同時要注意的是,ADO當前并不支持DAO的所有功能。ADO主要包括RDO風格的功能性,以便和OLE DB數據源交互,另外還包括遠程和DHTML技術。

一般說來,在ADO的演化過程中,馬上把大多數DAO應用程序移植到ADO上可能為時太早,因為當前的ADO并不支持數據定義(DDL)、用戶、組等。不過,如果只將DAO用于客戶/服務器應用程序,而并不依賴于Jet數據庫引擎或不使用DDL,那么現在就可以移植到ADO。

參考文獻:

[1]宋琦凡,付敬平,使用Visual Basic開發數據庫應用軟件,北京:電子工業出版社,1996.

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

[3]孟小峰,開放數據庫互連——ODBC 2.0使用大全,北京:清華大學出版社,1995.

[4]廖衛東,趙軍.Visual Basic編程手冊,北京:機械工業出版社,1996.

主站蜘蛛池模板: 欧美全免费aaaaaa特黄在线| 视频二区中文无码| 久热99这里只有精品视频6| 中文字幕66页| 亚洲AⅤ永久无码精品毛片| 一本色道久久88综合日韩精品| 国产黑人在线| 五月婷婷综合色| 日韩精品一区二区三区中文无码 | 四虎影视无码永久免费观看| 国产午夜无码片在线观看网站 | 精品国产免费观看一区| 中文无码日韩精品| 国产成人久久777777| 亚洲天天更新| 国产成人一区| 97视频免费看| 人妻精品久久久无码区色视| 一边摸一边做爽的视频17国产| AV片亚洲国产男人的天堂| 狼友视频国产精品首页| 亚洲成a人在线播放www| 国产91麻豆免费观看| 91久久偷偷做嫩草影院电| 国产精品冒白浆免费视频| 2048国产精品原创综合在线| 色婷婷啪啪| 九一九色国产| 热久久这里是精品6免费观看| 国产欧美视频在线| 亚洲无码电影| 亚洲天堂日韩在线| 91最新精品视频发布页| 国产第二十一页| 国产91精选在线观看| 无码精品福利一区二区三区| 国产丝袜精品| 色欲色欲久久综合网| 99精品影院| V一区无码内射国产| 香蕉视频在线观看www| 欧美精品另类| 漂亮人妻被中出中文字幕久久| 91娇喘视频| 人妻丰满熟妇AV无码区| 91国内外精品自在线播放| 日韩毛片在线播放| 丰满的少妇人妻无码区| 91亚瑟视频| 国产白浆一区二区三区视频在线| 国产原创自拍不卡第一页| 伊人久久精品无码麻豆精品 | 国产av剧情无码精品色午夜| 国产极品美女在线播放| 欧美亚洲日韩不卡在线在线观看| 97se亚洲综合在线韩国专区福利| 国产流白浆视频| 国产毛片久久国产| Jizz国产色系免费| 四虎影视8848永久精品| 久久中文字幕不卡一二区| 毛片免费在线视频| 无码区日韩专区免费系列 | 国产亚洲精品资源在线26u| 亚洲无码免费黄色网址| 日韩欧美色综合| 激情无码视频在线看| 欧美啪啪网| 日韩在线1| 在线va视频| 国产欧美日韩精品综合在线| 高潮爽到爆的喷水女主播视频| 日韩成人在线视频| 国产精品永久不卡免费视频| 欧美另类视频一区二区三区| 国产男女免费完整版视频| 亚洲一区二区三区国产精华液| 亚洲丝袜中文字幕| 99在线视频精品| 怡春院欧美一区二区三区免费| 蜜桃臀无码内射一区二区三区| 国产第一页免费浮力影院|