VB6.0数据库访问技术与例程解析Java教程
作為微軟旗下一款優(yōu)秀的RAD工具,VB在數(shù)據(jù)庫應(yīng)用開發(fā)方面的能力十分強(qiáng)大。微軟設(shè)計(jì)了多種數(shù)據(jù)庫訪問方法,下面通過對(duì)VB訪問數(shù)據(jù)庫的多種技術(shù)進(jìn)行深入剖析,并總結(jié)出實(shí)際開發(fā)中的幾點(diǎn)經(jīng)驗(yàn)。希望能夠?qū)δ荲B的初學(xué)者有所幫助。(注意,文中所有的描述均在Windows 2000 professional和Visual Basic 6.0的環(huán)境下進(jìn)行的)
一. DAO、RDO、ODBC和ADO
在VB的開發(fā)環(huán)境中,可以使用三種數(shù)據(jù)庫訪問方式,它們分別是:數(shù)據(jù)訪問對(duì)象(DAO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)和ADO對(duì)象模型。
DAO:
數(shù)據(jù)訪問對(duì)象是用來顯露了Microsoft Jet數(shù)據(jù)庫引擎(最早是給Microsoft Access 所使用,現(xiàn)在已經(jīng)支持其它數(shù)據(jù)庫),并允許開發(fā)者通過ODBC直接連接到其他數(shù)據(jù)庫一樣,直接連接到 Access 表。DAO 最適用于單系統(tǒng)應(yīng)用程序或在小范圍本地分布使用。其內(nèi)部已經(jīng)對(duì)Jet數(shù)據(jù)庫的訪問進(jìn)行了加速優(yōu)化,而且其使用起來也是很方便的。所以如果數(shù)據(jù)庫是Access數(shù)據(jù)庫且是本地使用的話,建議使用這種訪問方式。
VB已經(jīng)把DAO模型封裝成了Data控件,分別設(shè)置相應(yīng)的DatabaseName屬性和RecordSource屬性就可以將Data控件與數(shù)據(jù)庫中的記錄源連接起來了。以后就可以使用Data控件來對(duì)數(shù)據(jù)庫進(jìn)行操作。
RDO
RDO(Remote Data Objects)遠(yuǎn)程數(shù)據(jù)對(duì)象是一個(gè)到ODBC的、面向?qū)ο蟮臄?shù)據(jù)訪問接口,它同易于使用的DAO style組合在一起,提供了一個(gè)接口,形式上展示出所有ODBC的底層功能和靈活性。盡管RDO在很好地訪問Jet或ISAM數(shù)據(jù)庫方面受到限制,而且它只能通過現(xiàn)存的ODBC驅(qū)動(dòng)程序來訪問關(guān)系數(shù)據(jù)庫。但是,RDO已被證明是許多SQL Server、Oracle 以及其他大型關(guān)系數(shù)據(jù)庫開發(fā)者經(jīng)常選用的最佳接口。RDO提供了用來訪問存儲(chǔ)過程和復(fù)雜結(jié)果集的更多和更復(fù)雜的對(duì)象、屬性,以及方法。
和DAO一樣,在VB中也把其封裝為RDO控件了,其使用方法與DAO控件的使用方法完全一樣。
ODBC
ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對(duì)數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對(duì)SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數(shù)據(jù)庫操作由對(duì)應(yīng)的DBMS的ODBC驅(qū)動(dòng)程序完成。也就是說,不論是FoxPro、Access還是Oracle數(shù)據(jù)庫,均可用ODBC API進(jìn)行訪問。由此可見,ODBC的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫。
一個(gè)完整的ODBC由下列幾個(gè)部件組成:
1. 應(yīng)用程序(Application)
ODBC管理器(Administrator)。該程序位于Windows 95控制面板(Control Panel)的32位ODBC內(nèi),其主要任務(wù)是管理安裝的ODBC驅(qū)動(dòng)程序和管理數(shù)據(jù)源。
驅(qū)動(dòng)程序管理器(Driver Manager)。驅(qū)動(dòng)程序管理器包含在ODBC32.DLL中,對(duì)用戶是透明的。其任務(wù)是管理ODBC驅(qū)動(dòng)程序,是ODBC中最重要的部件。
2. ODBC API
ODBC 驅(qū)動(dòng)程序。是一些DLL,提供了ODBC和數(shù)據(jù)庫之間的接口。
數(shù)據(jù)源。數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,實(shí)際上是一種數(shù)據(jù)連接的抽象。
ODBC連接目前僅僅限于關(guān)系型數(shù)據(jù)庫,對(duì)于其他數(shù)據(jù)源比如EXCEL、文本文件都不能進(jìn)行訪問,而且有很多DBMS(數(shù)據(jù)庫管理系統(tǒng))都不能充分的支持其所有的功能。相比之下,OLEDB可以存取任何形式的數(shù)據(jù),所以其功能是相當(dāng)?shù)膹?qiáng)大,它也指導(dǎo)了目前技術(shù)發(fā)展的方向。
ADO
ADO(ActiveX Data Object)是DAO/RDO的后繼產(chǎn)物。ADO 2.0在功能上與RDO更相似,而且一般來說,在這兩種模型之間有一種相似的映射關(guān)系。ADO"擴(kuò)展"了DAO和 RDO 所使用的對(duì)象模型,這意味著它包含較少的對(duì)象、更多的屬性、方法(和參數(shù)),以及事件。
作為最新的數(shù)據(jù)庫訪問模式,ADO的使用也是簡單易用,所以微軟已經(jīng)明確表示今后把重點(diǎn)放在ADO上,對(duì)DAO/RDO不再作升級(jí),所以ADO已經(jīng)成為了當(dāng)前數(shù)據(jù)庫開發(fā)的主流。
ADO涉及的數(shù)據(jù)存儲(chǔ)有DSN(數(shù)據(jù)源名稱)、ODBC(開放式數(shù)據(jù)連接)以及OLE DB三種方式。后面的例程將詳細(xì)講解這三種方式的具體訪問實(shí)現(xiàn)。
要使用ADO,必須清楚ADO的對(duì)象層次結(jié)構(gòu),其大體上分為以下7個(gè)對(duì)象層次:
1、 Command 對(duì)象:包含關(guān)于某個(gè)命令,例如查詢字符串、參數(shù)定義等的信息。Command 對(duì)象在功能上和 RDO的rdoQuery 對(duì)象相似。
2、 Connection 對(duì)象:包含關(guān)于某個(gè)數(shù)據(jù)提供程序的信息。Connection 對(duì)象在功能上和 RDO 的 rdoConnection 對(duì)象是相似的,并且包含了關(guān)于結(jié)構(gòu)描述的信息。它還包含某些 RDOEnvironment 對(duì)象的功能,例如transaction 控件。
3、 Error對(duì)象:包含數(shù)據(jù)提供程序出錯(cuò)時(shí)的擴(kuò)展信息。Error 對(duì)象在功能上和 RDO 的rdoError 對(duì)象相似。
4、 Field 對(duì)象:包含記錄集中數(shù)據(jù)的某單個(gè)列的信息。Field 對(duì)象在功能上和 RDO的rdoColumn 對(duì)象相似。
5、 Parameter 對(duì)象:包含參數(shù)化的Command對(duì)象的某單個(gè)參數(shù)的信息。該 Command對(duì)象有一個(gè)包含其所有Parameter 對(duì)象的 Parameters 集合。Parameter 對(duì)象在功能上和 RDO 的 rdoParameter 對(duì)象相似。
6、 Property對(duì)象:包含某個(gè) ADO 對(duì)象的提供程序定義的特征。沒有任何等同于該對(duì)象的RDO,但DAO有一個(gè)相似的對(duì)象。
7、Recordset對(duì)象:用來存儲(chǔ)數(shù)據(jù)操作返回的記錄集。此對(duì)象和Connection對(duì)象是所有對(duì)象最重要的兩個(gè)對(duì)象。
當(dāng)然,對(duì)于初級(jí)用戶來說,我們只需要掌握其中的Connection對(duì)象和RecordSet對(duì)象就可以實(shí)現(xiàn)基本的數(shù)據(jù)庫操作,在后面的經(jīng)驗(yàn)介紹里面我將給出詳細(xì)的介紹。
總結(jié)
以上是生活随笔為你收集整理的VB6.0数据库访问技术与例程解析Java教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高并发场景下的缓存有哪些常见的问题?
- 下一篇: Linux 与 Unix 到底有什么不同