用Visual Basic訪問數據庫有許多可供選擇的方案,但是選擇那種方案更能使開發隊伍和應用軟件在今天處於有利位置並且適應將來的發展方向呢?這些解決方案各有什麼特點?本文將說明這些問題,幫助使用VB5的用戶和准備使用VB5的用戶選擇和決定哪種數據庫訪問方案對現在很有意義而且適應將來的應用程序。
當今,RDO2.0是Visual Basic訪問關系型ODBC數據源的最佳界面接口,就如DAO/Jet是Jet和ISAM(順序索引查找方法)類型數據源首選的訪問接口一樣。這兩種方法都完整的集成於Visual Basic中,並且形成了Visual Basic核心的數據訪問策略。RDO2.0的數據訪問速度遠快於RDO1.0的訪問速度,並且RDO和DAO都已發展為相當成熟的技術。因此假如用戶需要訪問ODBC數據源,可以使用RDO;如果需要訪問ISAM或Jet類型數據源,那麼就使用DAO/Jet。
Active Data Objects(ADO)作為另一種可供選擇的技術出現,正在逐漸代替其他數據訪問接口。由於RDO同ADO的體系結構非常相似,因此當需要將RDO數據接口轉換為ADO時,仍可以使用RDO設計的代碼。
有人曾提出這樣的問題:是否現在就使用ADO?雖然VB5使用ADO的數據訪問接口是可能的,但對於目前ADO的使用狀況,將RDO2.0或DAO3.5同ADO做比較顯得意義並不很大。所以回答是:如果感覺方便,還是盡早轉移到ADO,這意味著應用軟件對各種數據訪問接口將繼續予以支持。ADO是獨立於開發工具和開發語言的簡單而且容易使用的數據接口,同ADO相比,其他數據訪問接口都會黯然遜色。
所有的數據源都可以通過ADO來訪問,在今天已逐漸成為現實。
VB訪問數據庫技術的歷史綜觀過去的幾年,使用Visual Basic的客戶曾設計出數不勝數的程序和組件來建立商務解決方案。大約80%以上的應用程序是用來訪問以下這些數據的:ASCII文本文件、SQL數據庫以及大型機數據庫。早期的Visual Basic數據訪問工具只是簡單的ASCII文件的訪問工具,極少數SQL Server的前端應用程序是使用鮮為人知的數據接口VBSQL編寫的。然而,在Visual Basic 3.0時代許多用戶強調需轉移訪問包含遠程數據源的ISAM數據,為此Microsoft設計了Microsoft Jet Database Engine(或簡稱為Jet)和Data Access Object(DAO),使得Visual Basic Access開發人員很容易地同Jet接口。直至前兩年,對Visual Basic和其使用者的需求又包含了更快的訪問遠程數據和對ODBC數據源訪問的優化。
當選擇在此討論的哪種技術是最佳技術時? 要注意兩點:代碼的重用和開發者實現選擇的數據庫訪問方案的能力。設計者常常為實現或追求一種更特別的性能而使用有更多控件的奇異方案,這樣設計出來的應用程序只會支持起來更復雜或維護時更困難。開發人員和他們的管理人員需要在Visual Basic的開發小組和各種數據庫接口開發小組中注意避免這種趨勢。這些小組協調努力簡化VB5中的數據訪問接口會使程序的安全性和速度更好。VB5也包含了全新的查詢連接生成器,即User Connection設計器,它使用Visual Basic新的ActiveX設計器體系結構,對要編程的數據訪問提供設計時的支持。允許在設計時創建連接並查詢對象(基於RDO rdoConnection和rdoQuery對象)。並把這些連接和查詢對象當作工程級對象。可預先設置屬性、定義新屬性和方法並給對象編寫代碼來捕捉事件。
這不僅為響應由連接和查詢而引起的事件,而且為在運行時調用已有存儲過程和用戶定義的查詢提供了簡單的方法。使用User Connection設計器這種技術,代碼可減少10倍,性能卻沒有任何損失。
現在用VB5來建服務器端組件或前端應用程序,可以使用的數據庫接口方案至少有九種。每一種方案都可滿足用戶特定的需要,比如特殊的數據源和用戶開發的技能等。
Visual Basic訪問數據庫的現狀下面的表格列出了目前在VB5中有效的數據訪問接口方法,一部分是簡單的應用程序接口界面(APIs),但大部分是組件對象模型界面(COM)。這兩類數據庫接口界面事實上在任何一種開發語言中都包括。
接 口 界 面訪 問 對 象16/32 ?支 持VBSQL通 過DB-Library 訪 問 微 軟 的SQL Server16 位 和32 位ODBC API任 何 一 種ODBC 數 據 源16 位 和32 位DAO/Jet本 地 的Jet/Access .MDB、 順 序 索 引 數 據 庫(ISAM) 和 任 何ODBC 數 據 源。16 位 和32 位DAO/ODBC Direct任 何 一 種ODBC 數 據 源( 經 過RDO)32 位RDO 2.0任 何 一 種ODBC 數 據 源(Level Ⅰ 或 Ⅱ)32 位ADO *任 何 一 種ODBC 數 據 源 和 任 何 經 過OLE DB 界 面 接 口 的 數 據 源32 位