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

基于Visual Basic環(huán)境下數(shù)據(jù)庫訪問技術(shù)的研究

2014-09-04 00:57:52仇偉明
長春工業(yè)大學學報 2014年5期
關(guān)鍵詞:定義數(shù)據(jù)庫模型

仇偉明

(無錫商業(yè)職業(yè)技術(shù)學院, 江蘇 無錫 214153)

基于Visual Basic環(huán)境下數(shù)據(jù)庫訪問技術(shù)的研究

仇偉明

(無錫商業(yè)職業(yè)技術(shù)學院, 江蘇 無錫 214153)

對VB提供的3種不同數(shù)據(jù)庫訪問技術(shù),即數(shù)據(jù)訪問對象(Data Access Object, DAO)、遠程數(shù)據(jù)對象(Remote Data Object, RDO)、Active X數(shù)據(jù)對象(ActiveX Data Object, ADO)做了對比研究,并就各VB數(shù)據(jù)庫訪問技術(shù)的原理和特點做了簡要闡述。

VB; 數(shù)據(jù)庫; 訪問技術(shù)

0 引 言

VB是由Microsoft公司推出的包含開發(fā)及編譯平臺的基于對象觸發(fā)事件驅(qū)動的語言,它具有靈活易學的特點,并且對數(shù)據(jù)庫具有很強的管理功能。

在VB環(huán)境下,可以使用DAO,RDO,ADO這3種技術(shù)來訪問數(shù)據(jù)庫中的數(shù)據(jù)。根據(jù)在訪問數(shù)據(jù)時是否需要編寫代碼,3種數(shù)據(jù)庫訪問技術(shù)又都具有以下兩種具體的訪問形式:使用Data控件的非編程訪問方式,即通過對控件的數(shù)據(jù)綁定來訪問數(shù)據(jù)庫;使用對象模型的編程訪問方式,即通過定義對象和編寫代碼來訪問數(shù)據(jù)庫。

1 DAO

DAO基于使用一種接口來訪問多種類型的數(shù)據(jù)這一設計思想而設計的。它將Microsoft連接性引擎技術(shù)(Joint Engine Technology, JET)數(shù)據(jù)庫引擎外顯,并允許VB開發(fā)者通過開放式數(shù)據(jù)連接(Open Database Connectivity, ODBC)直接連接到數(shù)據(jù)庫并訪問其中的數(shù)據(jù)表。

在VB中提供了與DAO相關(guān)的兩種具體的數(shù)據(jù)庫訪問形式:Data控件和DAO對象模型。

Data控件給出較少的訪問現(xiàn)存數(shù)據(jù)庫的功能,這些功能不需要通過編程來實現(xiàn),VB可把DAO封裝成Data控件,Data控件將數(shù)據(jù)的值作為屬性,數(shù)據(jù)的查詢作為方法,數(shù)據(jù)值的變化作為事件,通過設置相應的DatabaseName屬性和RecordSource屬性就可以將Data控件與數(shù)據(jù)庫中的記錄源連接起來[1],通過Data控件來對數(shù)據(jù)庫進行操作,其操作對象是數(shù)據(jù)表中的記錄和字段。

DAO對象模型則是通過編程來完整的定義操作對象從而訪問數(shù)據(jù)庫的。DAO提供了兩種不同的對象模型:一種是通過Jet數(shù)據(jù)庫引擎來訪問數(shù)據(jù);另一種是通過ODBC Direct來訪問數(shù)據(jù)[2],這兩種對象模型都是層次結(jié)構(gòu)的。使用Jet的DAO對象模型和使用ODBC Direct的DAO對象模型分別如圖1和圖2所示。

圖1 使用Jet的DAO對象模型

圖2 使用ODBC Direct的DAO對象模型

使用Jet的DAO對象模型中重要對象說明:DBEngine對象在工程項目中引用到DAO時會被自動創(chuàng)建;Error對象在發(fā)生數(shù)據(jù)庫操作錯誤時處理錯誤和保存相關(guān)信息;Workspace對象管理一個數(shù)據(jù)庫會話;Database對象對一個數(shù)據(jù)庫進行創(chuàng)建或打開;TableDef對象可以訪問單個數(shù)據(jù)表的所有字段(Field對象)和數(shù)據(jù)表的索引(Index對象);QueryDef對象定義一個查詢;Recordset對象代表一個表的記錄集或者查詢命令執(zhí)行的結(jié)果;Relation對象用來定義不同數(shù)據(jù)表或查詢中字段之間的相互關(guān)系;Field對象對應著一個數(shù)據(jù)表中的某個字段;User對象代表了數(shù)據(jù)庫的某個用戶;Group對象則包含了具有相同權(quán)限的一組用戶。

與使用Jet的DAO對象模型相比較,使用ODBC Direct的DAO對象模型去掉了數(shù)據(jù)庫中的處理對象,新增了Connection對象。Connection對象代表一個到指定數(shù)據(jù)源的成功連接[3]。

使用Jet的DAO對象模型特點是支持多表連接的Recordset對象中數(shù)據(jù)的更新;支持不同數(shù)據(jù)源中數(shù)據(jù)表的連接;支持對DDL(數(shù)據(jù)定義語言)的操作;支持將ODBC數(shù)據(jù)源中的數(shù)據(jù)與窗體緊密結(jié)合。使用ODBC Direct的DAO對象模型特點是支持直接訪問ODBC數(shù)據(jù)源,進而使程序代碼執(zhí)行速度更快、效率更高;支持訪問特定的服務器;支持數(shù)據(jù)的批量更新。

DAO可以識別3類數(shù)據(jù)庫:VB數(shù)據(jù)庫,也就是*.mdb數(shù)據(jù)庫;索引順序訪問方法(Indexed Sequential Access Method, ISAM)數(shù)據(jù)庫;ODBC數(shù)據(jù)庫。

使用DAO技術(shù)可以對Microsoft Jet引擎數(shù)據(jù)庫方便的進行訪問,但由于Microsoft Jet不支持多線程,因此,必須對調(diào)用到應用程序主線程的所有DAO進行限制。

2 RDO

RDO提供了一系列對象,用來滿足遠程數(shù)據(jù)訪問的特殊要求[4]。它是位于ODBC應用程序接口之上的對象模型薄層,它基于ODBC應用程序接口、選定的ODBC驅(qū)動程序以及后端數(shù)據(jù)庫引擎來實現(xiàn)大部分的功能,它具備基本的ODBC處理方法,可以對大部分ODBC 應用程序接口函數(shù)直接進行執(zhí)行,從形式上凸顯出所有ODBC的底層功能以及靈活性,是遠程訪問ODBC關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的有效界面接口。

RDO是基于DAO衍生出來的,兩者之間最大的不同在于其數(shù)據(jù)庫模式。DAO操作是針對數(shù)據(jù)表中的記錄和字段,而RDO操作是針對行和列的,也就是說DAO是ISAM模式,RDO是關(guān)系模式。此外,DAO是訪問Jet引擎(Jet是ISAM)的接口,而RDO則是訪問ODBC的接口。因此,RDO是綜合了DAO/Jet,VBSQL/DB Lib,ODBC三者優(yōu)點的對象,其對象模型如圖3所示。

圖3 RDO對象模型

RDO對象模型中重要對象說明:rdoEngine對象在應用程序第一次訪問RDO時會自動創(chuàng)建;rdoError對象當發(fā)生錯誤時被自動創(chuàng)建,其用于處理RDO所產(chǎn)生的ODBC錯誤和消息;rdoEnvironment對象為連接及事務作用域的一個邏輯集合做定義;rdoConnection對象表示分配或打開遠程數(shù)據(jù)源上特定數(shù)據(jù)庫之間的一個連接;rdoQuery對象是定義一個SQL查詢;rdoResultset對象表示對一個查詢所產(chǎn)生的數(shù)據(jù)行直接運行;rdoTable對象表示存儲定義一個基本表或SQL視圖;rdoParameter對象表示與rdoQuery相關(guān)聯(lián)的某個參數(shù);rdocolumn對象表示含有公共數(shù)據(jù)類型和公共屬性的列數(shù)據(jù);rdoPrepareStatement對象預先定義了一個查詢。

RDO只有在后臺(服務器端)有數(shù)據(jù)庫存在的前提下才可運行,它是針對SQL Server和Oracle等大型關(guān)系數(shù)據(jù)庫而特別設計的。VB完全集成RDO,RDO具有直接訪問SQL Server存儲過程、支持Transact-SQL以及Visual Database Tools的集成化等優(yōu)勢。RDO的特點是:應用程序可訪問ODBC數(shù)據(jù)源而不需要使用本地的查詢處理程序;可以執(zhí)行與數(shù)據(jù)定義或數(shù)據(jù)操作有關(guān)的查詢;可以執(zhí)行查詢操作并對任意數(shù)量的結(jié)果集進行處理;可以限制返回或處理的數(shù)據(jù)行數(shù);可以對簡單的無游標結(jié)果集或更為復雜的游標進行創(chuàng)建;可以在不妨礙執(zhí)行查詢的情況下,對遠程數(shù)據(jù)資源產(chǎn)生的所有信息和錯誤進行監(jiān)控。許多大型關(guān)系數(shù)據(jù)庫開發(fā)者經(jīng)常選用RDO來訪問數(shù)據(jù)庫。

3 ADO

ADO是DAO,RDO的后繼產(chǎn)物,實際上是一種面向?qū)ο蟮模峁┰L問各種數(shù)據(jù)類型的連接機制[5]。它通過對對象鏈接和嵌入數(shù)據(jù)庫(Object Link and Embedding DataBase, OLE DB)進行封裝,具備了OLE DB所有的功能,OLE DB是一種底層數(shù)據(jù)訪問界面接口,是用于第三方驅(qū)動程序商家開發(fā)輸出數(shù)據(jù)源到ADO的數(shù)據(jù)庫組件,其不能被VB直接調(diào)用[6]。ADO通過OLE DB可以訪問任何類型的數(shù)據(jù)源。

在VB中提供了兩種與ADO有關(guān)的訪問數(shù)據(jù)的方法:Data控件和ADO對象模型。

使用ADO Data控件可以快速建立數(shù)據(jù)提供者與數(shù)據(jù)綁定控件之間的連接[7]。ADO Data控件通過Recordset對象支持訪問數(shù)據(jù)庫中數(shù)據(jù),并允許將指針在不同記錄之間移動,從而對記錄進行顯示和操縱。ADO Data控件雖然能夠操作、訪問數(shù)據(jù)庫,但是它并不能夠顯示數(shù)據(jù)庫中數(shù)據(jù)的內(nèi)容。ADO Data控件需要與其它控件結(jié)合使用。這些與ADO Data控件結(jié)合使用的控件(DataList控件、DataCombo控件和Datagrid控件)稱之為“數(shù)據(jù)察覺控件”。在對Data控件中數(shù)據(jù)的相關(guān)屬性設置好的前提下,無需編寫代碼或者只需編寫少量的代碼就可以達到數(shù)據(jù)訪問的目的,同時,可以結(jié)合數(shù)據(jù)察覺控件來顯示和修改數(shù)據(jù)。

ADO對象模型如圖4所示。

圖4 ADO對象模型

ADO對象模型“擴展”了DAO和 RDO 所使用的對象模型,這意味著它包含較少的對象,更多的屬性、方法以及事件。ADO同DAO和RDO一樣,其對象模型是層次型的,即一個較低的數(shù)據(jù)對象是幾個較高層次對象的子對象[8]。

ADO對象模型中重要對象說明:Connection對象包含相關(guān)數(shù)據(jù)提供程序和結(jié)構(gòu)描述的信息;Command對象包含某個命令;Recorded對象用來對數(shù)據(jù)操作返回的記錄集進行存儲;Errors對象包含數(shù)據(jù)提供程序出錯時的擴展信息;Properties對象包含某個ADO對象提供程序的定義特征; Parameter對象包含Command對象的某單個參數(shù)的信息;Fields對象包含記錄集中數(shù)據(jù)的某單個列的信息[8]。

使用ADO Data控件的特點是:ADO Data控件封裝了相應代碼的功能;簡化了數(shù)據(jù)表瀏覽、添加、修改記錄方面的操作。使用ADO模型的特點是:靈活性強,便于使用,可以動態(tài)的指定數(shù)據(jù)源,可以打開同一個數(shù)據(jù)源上多個記錄集或執(zhí)行同一個數(shù)據(jù)源上多個命令,可以建立獨立的連接對象;可以操作任何的OLE DB數(shù)據(jù)源,不損失任何OLE DB的功能;支持多種編程語言;可擴展性好,能夠基于數(shù)據(jù)提供者屬性集合動態(tài)地對數(shù)據(jù)提供者進行指定。

4 結(jié) 語

介紹的3種在VB環(huán)境下的數(shù)據(jù)訪問技術(shù),每一種都代表了數(shù)據(jù)庫訪問技術(shù)經(jīng)歷和發(fā)展的一個重要階段,其中ADO可以快速而方便地訪問不同數(shù)據(jù)源,占用內(nèi)存少[9],所以其發(fā)展前途也很好,已經(jīng)成為當前數(shù)據(jù)庫開發(fā)的主流,但是,ADO并不完全支持或兼容DAO和RDO的所有功能,所以需要熟練掌握3種數(shù)據(jù)庫訪問技術(shù),從而出色完成VB環(huán)境下數(shù)據(jù)庫的開發(fā)工作。

[1] 李國華.個性化教學設計建模的研究與實現(xiàn)[D]:[碩士學位論文].南京:東南大學,2005.

[2] 馬思紅,陸揚.基于VB的SQL Server數(shù)據(jù)庫訪問技術(shù)[J].電腦與電信,2007(10):56-57.

[3] 谷震離.VB遠程訪問SQL Server數(shù)據(jù)庫技術(shù)分析與比較[J].廣東經(jīng)濟管理學院學報,2005(2):71-75.

[4] 張仁霖.淺談Visual Basic 6.0的數(shù)據(jù)庫功能[J].安徽電子信息職業(yè)技術(shù)學院學報,2006(5):95-96.

[5] 范乃英,王蘭林.談VB的數(shù)據(jù)庫訪問技術(shù)[J].河南財政稅務高等專科學校學報,2008(6):81-83.

[6] 張勇.VB數(shù)據(jù)庫開發(fā)方案的比較[J].宿州教育學院學報,2003(4):71-73.

[7] 張宗飛.VB中基于ADO的數(shù)據(jù)庫訪問技術(shù)分析及應用[J].計算機與數(shù)字工程,2008(3):53-56,165.

[8] 張磊.VB中用ADO對象動態(tài)訪問Access[J].長春師范學院學報,2004(5):36-39.

[9] 陳長青,王萍.數(shù)據(jù)庫技術(shù)在光電設備遠程控制系統(tǒng)中的應用[J].長春工業(yè)大學學報:自然科學版,2007,28(3):257-260.

Research of database access technology based on Visual Basic environment

QIU Wei-ming

(Wuxi Institute of Commerce, Wuxi 214153, China)

Three different database access technologies based on VB, which are Data Access Object (DAO), Remote Data Object (RDO) and ActiveX Data Object (ADO) respectively, are studied. The principles and features of the technologies are discussed in detail.

VB; database; access technology.

2014-05-20

國家教師科研十二五規(guī)劃重點課題基金資助項目(GJL1321360)

仇偉明(1980-),男,漢族,江蘇無錫人,無錫商業(yè)職業(yè)技術(shù)學院講師,碩士,主要從事計算機網(wǎng)絡、軟件工程方向研究,E-mail:qiuweiming0617@163.com.

TP 399

A

1674-1374(2014)05-0490-05

猜你喜歡
定義數(shù)據(jù)庫模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 免费a级毛片18以上观看精品| YW尤物AV无码国产在线观看| 亚洲成AV人手机在线观看网站| 亚洲最大综合网| 国内a级毛片| 国内精品自在自线视频香蕉| 国产第一页屁屁影院| 漂亮人妻被中出中文字幕久久| 无码一区中文字幕| 四虎永久在线精品国产免费| 无码一区二区三区视频在线播放| 最近最新中文字幕免费的一页| 久久99国产精品成人欧美| 一本一道波多野结衣一区二区| 女人18毛片久久| 亚洲天堂成人| 国产成人亚洲无码淙合青草| 亚洲免费福利视频| 青青草国产精品久久久久| 日本午夜三级| 成年片色大黄全免费网站久久| 国产精品久久久久久久久kt| 婷婷五月在线视频| 亚洲精品无码日韩国产不卡| 亚洲国产成人久久精品软件| 日韩色图区| 亚洲精品天堂自在久久77| 精品超清无码视频在线观看| 日本黄色不卡视频| 免费人成在线观看成人片| 97一区二区在线播放| 日韩123欧美字幕| 亚洲AV无码久久天堂| 国产91丝袜在线观看| 亚洲成人动漫在线观看| 一级香蕉视频在线观看| 久久动漫精品| 在线无码av一区二区三区| 麻豆国产精品一二三在线观看| 久久久久九九精品影院| 免费可以看的无遮挡av无码| 伊人色天堂| 国产在线精彩视频二区| 久久久噜噜噜久久中文字幕色伊伊| 欲色天天综合网| 国产亚洲精久久久久久无码AV| 伊人久久综在合线亚洲2019| 2019年国产精品自拍不卡| 露脸真实国语乱在线观看| 狠狠亚洲五月天| 91区国产福利在线观看午夜| 91系列在线观看| 国产亚洲欧美日韩在线一区二区三区| 99热这里只有免费国产精品| 国产凹凸视频在线观看| 色综合激情网| 呦女亚洲一区精品| 亚洲一区二区黄色| 在线中文字幕网| 亚洲欧美不卡视频| 九色在线观看视频| 国产成人精品亚洲日本对白优播| 亚洲乱强伦| 99热这里只有精品国产99| 免费xxxxx在线观看网站| 香蕉99国内自产自拍视频| 国产大片黄在线观看| 日本国产在线| 久久久久亚洲av成人网人人软件| 伊人色在线视频| 国产一级无码不卡视频| 91人妻日韩人妻无码专区精品| 国产特级毛片aaaaaa| 在线观看网站国产| 99在线视频精品| 怡春院欧美一区二区三区免费| 91免费观看视频| 91久久精品日日躁夜夜躁欧美| 乱系列中文字幕在线视频| 秋霞午夜国产精品成人片| 制服丝袜在线视频香蕉| 五月婷婷亚洲综合|