- 相關(guān)推薦
Visual Basic中訪問遠程數(shù)據(jù)庫的幾種關(guān)鍵技術(shù)
摘 要 從VB數(shù)據(jù)庫體系結(jié)構(gòu)的角度探討了VB對數(shù)據(jù)庫的支持,并結(jié)合了一些代碼具體闡述了使用DAO(Data Access Object Variable)和RDO(Remote Data Control)兩種,實現(xiàn)遠程數(shù)據(jù)庫的訪問。關(guān)鍵詞 控件 數(shù)據(jù)庫 接口
Visual Basic專業(yè)版是一種廣泛使用的數(shù)據(jù)庫編程語言,提供了對數(shù)據(jù)庫的強大支持。VB訪問數(shù)據(jù)庫的方法大致有三類:使用數(shù)據(jù)綁定控件,使用數(shù)據(jù)庫存取對象變量(Data Access Object Vari?鄄able),直接調(diào)用ODBC 2.0 API接口函數(shù)。
1 VB的數(shù)據(jù)庫結(jié)構(gòu)
VB數(shù)據(jù)庫的核心結(jié)構(gòu)是MicroSoft Jet數(shù)據(jù)庫引擎,JET引擎的作用是支持多種ISAM(Indexed Sequential Access Method,即索引順序存取方 法) 數(shù)據(jù)驅(qū)動程序。VB環(huán)境下Access是缺省的數(shù)據(jù)格式,對于其他的關(guān)系型數(shù)據(jù)庫如Fox?鄄Pro、Dbase(或 Xbase)、Paradox、Btrieve等,VB的專業(yè)版可兼容其驅(qū)動程序,這就使得VB能支持這些數(shù)據(jù)庫格式。由上可見,Ms JET引擎實質(zhì)上提供了:一個符合ANSI標準的語法器;為查詢結(jié)果集的使用而提供的內(nèi)存管理功能;同所支持的數(shù)據(jù)庫的外部接口;為應用代碼提供的內(nèi)部接口。
2 VB訪問數(shù)據(jù)庫的原則和方法
2.1 VB訪問數(shù)據(jù)庫的原則
2.1.1 代碼的重用和運行的效率
VB程序設(shè)計中,應盡可能減少代碼的重復編寫,提高運行效率。例如:通過使用ODBC數(shù)據(jù)源連接數(shù)據(jù)庫的方法,可在變換多種數(shù)據(jù)庫類型的情況下,而不用頻繁修改代碼。用VBSQL通過DB-Library就做不到。而ODBC接口并不是VB訪問數(shù)據(jù)庫運行效率最高的方法。同樣,同是使用ODBC接口的ADO的效率要高于RDO。
2.1.2 實現(xiàn)的簡便性,易維護性
如果一種方法實現(xiàn)起來很復雜,工程的開發(fā)必然造成人力物力的浪費,同時這樣設(shè)計出來的應用程序只會支持起來更復雜或維護時更困難。例如:本地需要 訪問ISAM 或Jet 類型數(shù)據(jù)源,那么就使用DAO/Jet,而沒有必要使用通過ODBC的方法。RDC實現(xiàn)起來要較RDO更容易。
2.1.3 安全原則
這一條應根據(jù)環(huán)境和條件決定。例如局域網(wǎng)的安全性要好于廣域網(wǎng),因而可直接利用數(shù)據(jù)控件DC,這樣實現(xiàn)起來方便快捷,而廣域網(wǎng)需要大量的錯誤捕獲,如用RDC就不如用RDO易控制錯誤。
2.2 數(shù)據(jù)訪問接口功能及含義
ADC(Advanced Data Connector):高級數(shù)據(jù)連接器, 提供綁定ADO數(shù)據(jù)源到窗體的數(shù)據(jù)綁定控件上。ADC主要是一種直接訪問或者通過ADO訪問遠程OLE DB對象的一種技術(shù),它也支持主要應用在微軟IE瀏覽器上的數(shù)據(jù)綁定控件。它是特地為Web上的瀏覽器為基礎(chǔ)的應用程序而設(shè)計的。
ADO(Active Data Objects):Active 數(shù)據(jù)對象,ADO實際是一種提供訪問各種數(shù)據(jù)類型的連接機制。ADO設(shè)計為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口。可以使 用任何一種ODBC數(shù)據(jù)源,即不止適合于SQL Server、Oracle、Access等數(shù)據(jù)庫應用程序,也適合于Ex?鄄cel表格、 文本文件、 圖形文件和無格式的數(shù)據(jù)文件。ADO是基于OLE-DB 之 上的技術(shù),因此ADO通過其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。
DAO(Data Access Objects):數(shù)據(jù)訪問對象,是一種面向?qū)ο蟮慕缑娼涌。通過DAO/Jet 功能可以訪問ISAM 數(shù)據(jù)庫,使用DAO/ ODBC Direct功能可以實現(xiàn)遠程RDO功能。使用DAO的程序編碼非常簡單,DAO提供豐富的游標(Cursor)類型的結(jié)果集和非游標(Cursor-Less)類型的結(jié)果集,同DDL( 數(shù)據(jù)描述語言)的功能很類似。 DAO模型是設(shè)計關(guān)系數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的對象類的集合。它們提供了完成管理這樣一個系統(tǒng)所的全部操作的屬性和方法,包括創(chuàng)建數(shù)據(jù)庫,定義表、字段和索引,建立表間的關(guān)系,定位和查詢數(shù)據(jù)庫等工具。
JET(Joint Engine Technology):數(shù)據(jù)連接性引擎技術(shù),是一種基于工作站通過DAO的數(shù)據(jù)庫訪問機制。雖然可以通過微軟Access提供的ODBC驅(qū)動程序訪問Jet數(shù)據(jù)庫,但使用這些驅(qū)動程序在功能上有所限制。Jet機制有自己的查詢和結(jié)果集處理功能,并可對同種或異種數(shù)據(jù)源作查詢處理。
ODBC(Open Database Connectivity):開放式的數(shù)據(jù)庫連接,是一種公認的關(guān)系數(shù)據(jù)源的接口界面。提供統(tǒng)一接口的界面,ODBC對任何數(shù)據(jù)源都未作優(yōu)化。
ODBC Direct:是一種基于DAO對象的新的DAO模式, 其方法和屬性與RDO功能相同。使用在有DAO代碼存在的場合,可用來訪問遠程數(shù)據(jù)源。
OLE DB:是一種底層數(shù)據(jù)訪問界面接口。是用于第三方驅(qū)動程序商家開發(fā)輸出數(shù)據(jù)源到ADO技術(shù)的應用程序或用于C++的開發(fā)者開發(fā)定制的數(shù)據(jù)庫組件。OLE DB不能被VB 直接調(diào)用。
RDC(Remote Data Control):遠程數(shù)據(jù)訪問控件,是一種對RDO 數(shù)據(jù)綁定的控件?梢暂敵鎏囟ǖ慕Y(jié)果集到數(shù)據(jù)源控件。
RDO(Remote Data Objects):遠程數(shù)據(jù)對象,遠程數(shù)據(jù)對象和集合為使用代碼來創(chuàng)建和操作一個遠程ODBC 數(shù)據(jù)庫系統(tǒng)的各個部件提供了一個框架。對象和集合都具有描述數(shù)據(jù)庫的各個部件特征的屬性以及用來操作這些部件的?梢栽趯ο蠛图现g建立起關(guān)系,這些關(guān)系就代表了數(shù)據(jù)庫系統(tǒng)的邏輯結(jié)構(gòu)。RDO是ODBC API的一個淺層界面接口。是專為訪問遠程ODBC 關(guān)系數(shù)據(jù)源而設(shè)計的。
VBSQL:是Visual Basic 結(jié)構(gòu)化查詢語言。 是一種基于API 的接口方法, 幾乎與C 的DB-Library API 相同,VBSQL 只支持微軟的SQL Server。VBSQL 快而且輕但不支持對象界面。
2.3 VB訪問數(shù)據(jù)庫的方法
VB訪問數(shù)據(jù)庫的方法很多,一般情況下分成三大類,而每一類又有很多方法。下面列出每一類,及每一類包含的方法。
2.3.1 數(shù)據(jù)控件法
數(shù)據(jù)庫綁定的控件來實現(xiàn)數(shù)據(jù)的輸入、顯示、篩選等接口界面。表1列舉了VB支持的多種數(shù)據(jù)源訪問控件,在VB和COM界面接口之間起著媒介作用。這些控件提供了一種減少代碼實現(xiàn)數(shù)據(jù)訪問的途徑。程序員可以使用同樣的對象、屬性和方法來處理各種不同的數(shù)據(jù)庫格式。也可從一種數(shù)據(jù)庫格式變到另一種格式(例如,將本地的Mi?鄄crosoft Access數(shù)據(jù)庫轉(zhuǎn)換為上的SQL Server數(shù)據(jù)庫),也可在單一的查詢或報表中連接來自多個不同數(shù)據(jù)庫的表。
2.3.2 數(shù)據(jù)庫存取對象變量(Data Access Object Variable)
表2列舉了使用DAO訪問數(shù)據(jù)庫的對象和方法。
2.3.3 數(shù)據(jù)接口法
表3列出了在VB6中有效的數(shù)據(jù)訪問接口方法,有些是簡單的程序接口界面(APIs),有些是組件對象模型界面(COM)。這兩類數(shù)據(jù)庫接口界面事實上在任何一種開發(fā)語言中都包括。
3
近來隨著Web應用軟件的迅速和現(xiàn)有數(shù)據(jù)存儲形式的多種多樣,Visual Basic訪問數(shù)據(jù)庫的解決方案面臨諸多挑戰(zhàn)。為此Microsoft 提出一種新的數(shù)據(jù)庫訪問策略,即“統(tǒng)一數(shù)據(jù)訪問”(Universal Data Access)的策略!敖y(tǒng)一數(shù)據(jù)訪問”提供了高性能的存取包括關(guān)系型和非關(guān)系型在內(nèi)的多種數(shù)據(jù)源,提供獨立于開發(fā)工具和開發(fā)語言的簡單的編程接口,這些技術(shù)使得集成多種數(shù)據(jù)源、選擇更好的開發(fā)工具、應用軟件、操作平臺、建立容易維護的解決方案成為可能!敖y(tǒng)一數(shù)據(jù)訪問”(Universal Data Access)的基礎(chǔ)是Mi?鄄crosoft 的數(shù)據(jù)訪問組件。這些組件包括ActiveX Data Objects(ADO)、Remote Data Service(RDS,也稱“高級數(shù)據(jù)連接器”或ADC)、OLE DB和ODBC。總之,在VB中訪問數(shù)據(jù)庫的方法很多,根據(jù)具體的環(huán)境、條件、要求而采用適當?shù)姆桨浮?BR>
1 冷向君.Visual Basic 中文版入門與提高[M].北京:清華大學出版社,1998
2 李昭原,羅曉沛.數(shù)據(jù)庫技術(shù)新進展[M].北京:清華大學出版社,1997
3 Steven Holzner.Visual Basic 6.0技術(shù)內(nèi)幕[M].北京:機械出版社,1997
4 Jiawei Han,Miccheline Kamber.數(shù)據(jù)挖掘概念與技術(shù)[M].北京:機械工業(yè)出版社
5 曾強聰,趙歆,楊莉.Visual Basic 6.0 程序設(shè)計教程[M].水利水電出版社,1999
【Visual Basic中訪問遠程數(shù)據(jù)庫的幾種關(guān)鍵技術(shù)】相關(guān)文章:
Visual Basic6.0下數(shù)據(jù)庫報表制作技巧09-05
visual c 中的開放數(shù)據(jù)庫連接技術(shù)08-12
用Visual Basic實現(xiàn)圖像的銳化處理07-01
用Visual Basic 6.0實現(xiàn)自動化測試08-26
應用LabSQL實現(xiàn)LabVIEW中數(shù)據(jù)庫的訪問09-02
遠程訪問服務10-02
基于Visual Basic快速開發(fā)現(xiàn)場電視監(jiān)控系統(tǒng)08-18