亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)據(jù)庫訪問技術(shù)在VB中的應(yīng)用

        2008-12-31 00:00:00趙江巖屈建萍
        商場現(xiàn)代化 2008年14期

        [摘 要] 對VB中數(shù)據(jù)庫訪問技術(shù)進(jìn)行了介紹,并且討論了VB應(yīng)用程序開發(fā)中最常用的三種數(shù)據(jù)訪問接口的體系結(jié)構(gòu)、性能特點(diǎn),最后對這三種接口的技術(shù)進(jìn)行集中總結(jié),給出了它們各自的適用場所。

        [關(guān)鍵詞] 數(shù)據(jù)庫訪問 數(shù)據(jù)訪問接口 ODBC DAO RDO OLE DB ADO

        當(dāng)今,數(shù)據(jù)庫技術(shù)和網(wǎng)絡(luò)技術(shù)是計(jì)算機(jī)技術(shù)領(lǐng)域中兩大主題。目前比較常用的數(shù)據(jù)庫編程開發(fā)工具主要有:Delphi、PowerBuilder、Visual Basic、Visual C++、Borland C++等。本文闡述了最常用的三種數(shù)據(jù)訪問接口的對象模型及其原理特性,分析總結(jié)出它們各自適用場合。

        一、三種數(shù)據(jù)訪問接口技術(shù)的體系結(jié)構(gòu)及性能特點(diǎn)

        數(shù)據(jù)庫訪問技術(shù)處在不斷進(jìn)步中,DAO、RDO和ADO代表了該項(xiàng)技術(shù)發(fā)展的不同階段。盡管VB中提供了直接與ODBC或OLE DB交互訪問數(shù)據(jù)庫的方法,但由于其屬于底層接口,編程復(fù)雜,通常較少使用,大部分VB應(yīng)用程序更常更多使用DAO、RDO和ADO,下面本文對這三種數(shù)據(jù)訪問接口做進(jìn)一步的討論。

        1.DAO(Data Access Objects,數(shù)據(jù)訪問對象)體系結(jié)構(gòu)及性能特點(diǎn)

        DAO的體系結(jié)構(gòu):DAO是使用分層的對象框架實(shí)現(xiàn)的,DBEngine是DAO對象的頂層,它表示Microsoft Jet Database Engine。每個(gè)應(yīng)用程序只能創(chuàng)建一個(gè) DBEngine對象,所有其他DAO對象都含在DBEngine對象內(nèi)。Workspace和 Errors是DAO框架的第二層。每個(gè)Workspace對象代表一個(gè)數(shù)據(jù)會(huì)話,用于控制數(shù)據(jù)庫的登錄安全性和事務(wù)范圍。每個(gè)Workspace對象包含一組Database對象。Database對象是DAO的中心對象。每個(gè)Database對象表示一個(gè)本地或遠(yuǎn)程數(shù)據(jù)庫。當(dāng)Jet引擎打開本地或遠(yuǎn)程數(shù)據(jù)庫時(shí),一個(gè)Database對象就增加到該Database 集合中。Database對象包含其他主要的DAO對象集合。其中TableDef、Recordset、QueryDef對象集合用于訪問SQLServer數(shù)據(jù)庫,而Relations和Containers用于本地Jet引擎數(shù)據(jù)庫。

        DAO的性能特點(diǎn):DAO是第一個(gè)面向?qū)ο蟮臄?shù)據(jù)庫訪問編程接口,是VB默認(rèn)的數(shù)據(jù)庫訪問方式。這種結(jié)構(gòu)的好處是:同一代碼能支持所有格式——不管它是ISMA還是ODBC數(shù)據(jù)源。

        2.RDO(Remote Data Objects,遠(yuǎn)程數(shù)據(jù)對象)體系結(jié)構(gòu)及性能特點(diǎn)

        RDO的體系結(jié)構(gòu):RDO 是一種對象框架和對象集合,RDO的對象層次與ODBC 的對象層次非常相似,RDO對象模型完全并行于ODBC的體系結(jié)構(gòu)。在RDO對象框架的頂層是rdoEngine,rdoEngine表示遠(yuǎn)程數(shù)據(jù)源。所有的RDO應(yīng)用程序都必須有一個(gè)rdoEngine對象的實(shí)例,rdoEngine對象是惟一的,它總是作為一個(gè)對象集合,所有其他對象都包含在集合中。rdoEnvironment在rdoEngine的下一層,主要用于設(shè)置某個(gè)給定數(shù)據(jù)庫連接將要使用的用戶ID和口令值及事務(wù)范圍。rdoEnvironment對象的下一層是 rdoConnection對象,它負(fù)責(zé)創(chuàng)建對數(shù)據(jù)源的連接。它通過使用OpenConnection啟動(dòng)一個(gè)主連接。每個(gè)rdoConnection對象可以有rdoTable 、rdoResultset和rdoPreparedStatement對象集合。每個(gè)rdoTable對象表示一個(gè)數(shù)據(jù)庫表,每個(gè)rdoPreparedStatement對象表示一個(gè)預(yù)準(zhǔn)備的SQL 語句,每個(gè)rdoResultset對象表示由一個(gè)由SQL Select語句返回的數(shù)據(jù)集;這些對象都可以包含rdoColumn對象。使用rdoParameter對象在本地程序變量和參數(shù)化查詢或存儲(chǔ)過程之間交換數(shù)據(jù)。rdoError對象包含任何由基本的ODBC操作生成的錯(cuò)誤在VB的On Error句柄中,可以從rdoErrors集合中檢索指定的錯(cuò)誤信息。

        RDO的性能特點(diǎn):RDO是VB與ODBC連接的推薦模式,是一個(gè)直接與 ODBC API連接的面向?qū)ο蠼涌冢孕枋褂肑et引擎。從RDO的層次模型可以看出,RDO兼具了ODBC API 與DAO二者的優(yōu)點(diǎn):一方面它的層次結(jié)構(gòu)沒有DAO復(fù)雜,對象的創(chuàng)建和處理簡單;另一方面,RDO仍表露了ODBC API 的基層結(jié)構(gòu),可提供環(huán)境、連接和語句句柄。值得注意的是:RDO不能直接執(zhí)行改變數(shù)據(jù)庫規(guī)劃的操作,且僅能應(yīng)用于32 的操作系統(tǒng)中。使用 RDO的應(yīng)用程序可以繞過本地查詢處理程序而直接訪問ODBC數(shù)據(jù)源,這點(diǎn)與 DAO 不同,由于這一特點(diǎn),RDO特別適合客戶/服務(wù)器應(yīng)用程序的開發(fā)。如果你考慮采用一種直接與ODBC API一起使用的編程方法,那么,RDO是一種合適的解決方案。

        3.ADO(ActiveX Data Objects,ActiveX 數(shù)據(jù)對象)體系結(jié)構(gòu)及性能特點(diǎn)

        ADO的體系結(jié)構(gòu):ADO是使用層次對象框架實(shí)現(xiàn)的,但比DAO和RDO對象模型框架更簡單。在ADO對象模型中,Connecton,Recordset和Command對象是三個(gè)主要的對象。Connecton對象表示對遠(yuǎn)程數(shù)據(jù)源的連接。除了創(chuàng)建數(shù)據(jù)源的 連接外,Connecton還可以用來控制事務(wù)范圍。Connecton對象可與Recordset對象或Command對象關(guān)聯(lián)。Recordset對象表示從數(shù)據(jù)源返回的結(jié)果集。它可以使用一個(gè)打開的Connecton對象,也可以創(chuàng)建自己對目標(biāo)數(shù)據(jù)源的連接;Recordset 對象允許查詢和修改數(shù)據(jù)。每個(gè)Recordset對象包含一個(gè)Field對象集。Command 對象用來執(zhí)行命令和參數(shù)化的SQL語句,可用于SQL語句和返回結(jié)果集的SQL 查詢。Command對象也可以使用一個(gè)打開的Connecton對象或創(chuàng)建自己對目標(biāo)數(shù)據(jù)源的連接。

        ADO的性能特點(diǎn):ADO是DAO/RDO的后繼產(chǎn)物,集中了DAO和RDO的優(yōu)點(diǎn)。從ADO對象的層次模型看出,它包更少的對象、更多的屬性、方法、參數(shù)及事件。包含在DAO和RDO模型中的許多功能在ADO中被合并成單個(gè)對象,這樣就生成了一個(gè)簡單得多的對象模型。ADO是一種基于OLE DB的面向?qū)ο蟾邔訑?shù)據(jù)庫訪問接口,是VB的最新數(shù)據(jù)庫訪問技術(shù)。ADO封裝了OLE DB并實(shí)現(xiàn)了OLE DB 的所有功能,它在繼承了LE DB優(yōu)點(diǎn)的同時(shí),大大減化了OLE DB的操作。ADO支持建立客戶/服務(wù)器和基于Web的應(yīng)用程序的關(guān)鍵功能,給出了單一或多客戶/服務(wù)器和Web數(shù)據(jù)開發(fā)的解決方案。正因?yàn)锳DO具有上述這些技術(shù)優(yōu)勢,所以它的應(yīng)用前景十分看好。

        二、三種VB數(shù)據(jù)庫訪問技術(shù)比較及其適用場合

        DAO是第一個(gè)面向?qū)ο缶幊探涌?,它顯露了Microsoft Access/Jet 數(shù)據(jù)庫引擎,并允許VB開發(fā)者直接連接到Access數(shù)據(jù)表。因此,DAO技術(shù)在訪問MDB文件格式的數(shù)據(jù)庫時(shí)有優(yōu)勢。但如果開發(fā)者想使用DAO與Oracle或SQL Server這樣的非MDB 文件格式的數(shù)據(jù)庫服務(wù)器進(jìn)行通信,則對數(shù)據(jù)庫的所有調(diào)用和數(shù)據(jù)輸出都必須經(jīng)過Access/Jet數(shù)據(jù)庫引擎,這對于使用數(shù)據(jù)庫服務(wù)器的應(yīng)用程序來說是一個(gè)嚴(yán)重的瓶頸。 因此,DAO最適用于單系統(tǒng)應(yīng)用程序或小范圍本地分布使用。

        RDO是一個(gè)到ODBC的、面向?qū)ο蟮臄?shù)據(jù)訪問接口。它與 DAO Style組合起來,形式上展示出所有ODBC的底層功能和靈活性,提供了對ODBC數(shù)據(jù)源更直接的訪問方式。它兼具 DAO和ODBC API二者的優(yōu)點(diǎn):一方面,它較DAO層次結(jié)構(gòu)簡單,便于對象的創(chuàng)建和處理;另一方面,它表露了ODBC的底層結(jié)構(gòu),提供環(huán)境、連接和語句句柄。此外,RDO還提供了用來訪問存儲(chǔ)過程和復(fù)雜結(jié)果的更多、更復(fù)雜的對象、屬性和方法,因此,盡管它只能通過現(xiàn)存的ODBC驅(qū)動(dòng)程序訪問關(guān)系數(shù)據(jù)庫,并在訪問Jet或ISAM數(shù)據(jù)庫方面受到某些限制, 但它在許多大型關(guān)系數(shù)據(jù)庫應(yīng)用程序開發(fā)的仍被證明是一種比較好的選擇。

        ADO是一種新的數(shù)據(jù)庫訪問技術(shù),是特別為客戶/服務(wù)器應(yīng)用程序開發(fā)而設(shè)計(jì)的。作為DAO和RDO的后繼者,它提供了類似DAO和RDO的功能,主要包括RDO風(fēng)格的功能性。然而,ADO 更加靈活的對象模型允許其有效地用于各種各樣的應(yīng)用程序。DAO對象模型主要用于Jet引擎,RDO對象模型主要用于ODBC數(shù)據(jù)訪問,而ADO對象模型主要用于OLE DB。Jet和ODBC主要是針對數(shù)據(jù)庫訪問,而OLE DB對許多不同的數(shù)據(jù)源提供多機(jī)種環(huán)境的數(shù)據(jù)訪問。Microsoft公司已將 ADO作為數(shù)據(jù)存取API的未來選擇;VBScript以使用ADO,這使它很適合服務(wù)器/數(shù)據(jù)庫的整合。因此,ADO是客戶/服務(wù)器和基于Web的應(yīng)用程序開發(fā)的首選。隨著數(shù)據(jù)庫訪問技術(shù)的不斷發(fā)展,ADO將成為數(shù)據(jù)庫訪問技術(shù)的主流。

        參考文獻(xiàn):

        [1]鄭 沫:Microsoft SQL Server 7.0開發(fā)實(shí)例精解[M].北京:北京希望電子出版社,2000

        [2]張宏民:Visual Basic 6.0編程實(shí)例精解[M].北京:北京希望電子出版社,2000

        [3]夏慶梅 熊華鋼:VB訪問SQL Server的三種數(shù)據(jù)訪問接口的研究[J].計(jì)算機(jī)應(yīng)用研究 2001,18(12),44~47

        少妇精品无码一区二区三区| 亚洲春色视频在线观看| 日本一区二区三区爱爱视频| 99国产精品99久久久久久| 韩国无码av片在线观看网站| 国产精品无码久久久久免费AV | 国产激情自拍在线视频| 蜜臀av无码人妻精品| 国产香蕉一区二区三区在线视频| 曰韩人妻无码一区二区三区综合部 | 久久老熟女一区二区三区| 极品粉嫩嫩模大尺度无码视频| 国产午夜精品无码| 国产免费av片在线观看播放| 国内视频偷拍一区,二区,三区| 亚洲高清精品一区二区| 国产精品国产亚洲精品看不卡| 国产激情精品一区二区三区| 亚洲激情人体艺术视频| aa日韩免费精品视频一| 无码小电影在线观看网站免费| 国产99久久亚洲综合精品| 亚洲欧美变态另类综合| 中文字幕一区二区综合| 国产成人精品午夜视频| 亚洲丁香婷婷综合久久小说 | 亚洲av成熟国产精品一区二区| 亚洲综合色无码| 亚洲精品永久在线观看| 在线观看中文字幕一区二区三区 | 天天噜日日噜狠狠噜免费| 亚洲一级毛片免费在线观看| 91青青草视频在线播放| 色偷偷偷在线视频播放| 久久久久久久女国产乱让韩| 久久精品日本美女视频| 日本熟妇另类一区二区三区| 日本免费一区二区三区| 久久久久亚洲av成人无码| 不卡的av网站在线观看| 婷婷九月丁香|