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
主站蜘蛛池模板: 狼友视频一区二区三区| 真人高潮娇喘嗯啊在线观看| 日韩午夜片| 亚洲毛片网站| 91九色最新地址| 欧美97欧美综合色伦图| a在线观看免费| vvvv98国产成人综合青青| 2020亚洲精品无码| 久久性视频| 国产日韩欧美中文| 国产精品无码制服丝袜| a欧美在线| 国产精品天干天干在线观看| 精品国产电影久久九九| 国产高清精品在线91| 国产福利拍拍拍| 亚洲综合片| 亚洲精品午夜无码电影网| 女人18毛片久久| 天堂网亚洲系列亚洲系列| 午夜啪啪网| 亚洲品质国产精品无码| 日本欧美视频在线观看| 波多野结衣久久高清免费| 一级片免费网站| 中文字幕第1页在线播| 欧美伊人色综合久久天天| 亚洲精品在线91| 波多野结衣久久高清免费| 中文字幕伦视频| 99热这里只有精品久久免费| 在线毛片免费| 女人18毛片水真多国产| 2020久久国产综合精品swag| 又爽又黄又无遮挡网站| 日韩中文精品亚洲第三区| 色天天综合| 国产精品黄色片| 久久黄色一级视频| 成人综合在线观看| 九九热精品在线视频| 99久久性生片| 亚洲欧美日韩高清综合678| 久热re国产手机在线观看| 亚洲精品桃花岛av在线| 老色鬼久久亚洲AV综合| 国产波多野结衣中文在线播放 | 欧美色99| 午夜啪啪网| 福利视频一区| 日本欧美中文字幕精品亚洲| 成人免费午间影院在线观看| 91极品美女高潮叫床在线观看| 日韩无码视频网站| 亚洲国产看片基地久久1024| 福利在线不卡一区| 亚洲三级视频在线观看| 欧美精品v欧洲精品| 国产在线视频自拍| 高清无码手机在线观看| 99久久无色码中文字幕| 欧美在线中文字幕| 天堂成人在线| 欧美国产在线看| 国产精品太粉嫩高中在线观看| 日韩欧美91| 午夜小视频在线| 天堂成人av| 久久性视频| 欧美97欧美综合色伦图| 国产地址二永久伊甸园| 综合久久五月天| 日韩在线播放中文字幕| 精品少妇三级亚洲| 在线免费无码视频| 国产自在线播放| 91亚洲视频下载| 日韩在线成年视频人网站观看| 欧美色99| 中文字幕2区| 美女亚洲一区|