引言
作為微軟旗下一款優秀的RAD工具,VB在數據庫應用開發方面的能力十分強大。微軟設計了多種數據庫訪問方法,下面通過對VB訪問數據庫的多種技術進行深入剖析,并總結出實際開發中的幾點經驗。希望能夠對那VB的初學者有所幫助。(注意,文中所有的描述均在Windows 2000 professional和Visual Basic 6.0的環境下進行的)
一. DAO、RDO、ODBC和ADO
在VB的開發環境中,可以使用三種數據庫訪問方式,它們分別是:數據訪問對象(DAO)、遠程數據對象(RDO)和ADO對象模型。
DAO:
數據訪問對象是用來顯露了Microsoft Jet數據庫引擎(最早是給Microsoft Aclearcase/" target="_blank" >ccess 所使用,現在已經支持其它數據庫),并允許開發者通過ODBC直接連接到其他數據庫一樣,直接連接到 Access 表。DAO 最適用于單系統應用程序或在小范圍本地分布使用。其內部已經對Jet數據庫的訪問進行了加速優化,而且其使用起來也是很方便的。所以如果數據庫是Access數據庫且是本地使用的話,建議使用這種訪問方式。
VB已經把DAO模型封裝成了Data控件,分別設置相應的DatabaseName屬性和RecordSource屬性就可以將Data控件與數據庫中的記錄源連接起來了。以后就可以使用Data控件來對數據庫進行操作。
RDO
RDO(Remote Data Objects)遠程數據對象是一個到ODBC的、面向對象的數據訪問接口,它同易于使用的DAO style組合在一起,提供了一個接口,形式上展示出所有ODBC的底層功能和靈活性。盡管RDO在很好地訪問Jet或ISAM數據庫方面受到限制,而且它只能通過現存的ODBC驅動程序來訪問關系數據庫。但是,RDO已被證明是許多SQL Server、Oracle 以及其他大型關系數據庫開發者經常選用的最佳接口。RDO提供了用來訪問存儲過程和復雜結果集的更多和更復雜的對象、屬性,以及方法。
和DAO一樣,在VB中也把其封裝為RDO控件了,其使用方法與DAO控件的使用方法完全一樣。
ODBC
ODBC(Open Database Connectivity,開放數據庫互連)是微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關數據庫的一個組成部分,它建立了一組規范,并提供了一組對數據庫訪問的標準API(應用程序編程接口)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
一個基于ODBC的應用程序對數據庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數據庫操作由對應的DBMS的ODBC驅動程序完成。也就是說,不論是FoxPro、Access還是Oracle數據庫,均可用ODBC API進行訪問。由此可見,ODBC的最大優點是能以統一的方式處理所有的數據庫。
一個完整的ODBC由下列幾個部件組成:
1. 應用程序(Application)
ODBC管理器(Administrator)。該程序位于Windows 95控制面板(Control Panel)的32位ODBC內,其主要任務是管理安裝的ODBC驅動程序和管理數據源。
驅動程序管理器(Driver Manager)。驅動程序管理器包含在ODBC32.DLL中,對用戶是透明的。其任務是管理ODBC驅動程序,是ODBC中最重要的部件。
2. ODBC API
ODBC 驅動程序。是一些DLL,提供了ODBC和數據庫之間的接口。
數據源。數據源包含了數據庫位置和數據庫類型等信息,實際上是一種數據連接的抽象。
ODBC連接目前僅僅限于關系型數據庫,對于其他數據源比如EXCEL、文本文件都不能進行訪問,而且有很多DBMS(數據庫管理系統)都不能充分的支持其所有的功能。相比之下,OLEDB可以存取任何形式的數據,所以其功能是相當的強大,它也指導了目前技術發展的方向。
ADO
ADO(ActiveX Data Object)是DAO/RDO的后繼產物。ADO 2.0在功能上與RDO更相似,而且一般來說,在這兩種模型之間有一種相似的映射關系。ADO"擴展"了DAO和 RDO 所使用的對象模型,這意味著它包含較少的對象、更多的屬性、方法(和參數),以及事件。
作為最新的數據庫訪問模式,ADO的使用也是簡單易用,所以微軟已經明確表示今后把重點放在ADO上,對DAO/RDO不再作升級,所以ADO已經成為了當前數據庫開發的主流。
原文轉自:http://www.anti-gravitydesign.com