



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于bde的數(shù)據(jù)庫(kù)連接方法
現(xiàn)在數(shù)據(jù)庫(kù)應(yīng)用程序變得越來越普遍,各種語言開發(fā)平臺(tái)都支持開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序。C++Builder是Inprise公司繼Delpli之后提出的一款高性能可視化集成快速開發(fā)工具。它使用的VCL類庫(kù)提供200個(gè)左右的控件,使得C++Builder開發(fā)應(yīng)用程序非常方便容易,特別是建立在BDE和ADO基礎(chǔ)上的數(shù)據(jù)庫(kù)訪問控件,使得利用C++Builder進(jìn)行數(shù)據(jù)庫(kù)訪問要比其它開發(fā)工具更加方便快捷。下面就這兩種連接數(shù)據(jù)庫(kù)方法及優(yōu)缺點(diǎn)做一下比較,談?wù)劰P者的體會(huì)。1數(shù)據(jù)庫(kù)連接由bde組件執(zhí)行1數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件BDE是Borland公司提供的實(shí)現(xiàn)數(shù)據(jù)庫(kù)應(yīng)用程序和數(shù)據(jù)庫(kù)底層連接的工具軟件,全稱為BorlandDatabaseEngine,即Borland數(shù)據(jù)庫(kù)引擎。它是基于Windows操作系統(tǒng)的32位數(shù)據(jù)庫(kù)引擎。通過BDE,應(yīng)用程序可以實(shí)現(xiàn)與數(shù)據(jù)庫(kù)底層的連接。BDE提供的數(shù)據(jù)庫(kù)別名管理機(jī)制,隱藏了數(shù)據(jù)庫(kù)的物理性質(zhì),使數(shù)據(jù)庫(kù)應(yīng)用程序不需要因?yàn)閿?shù)據(jù)庫(kù)物理結(jié)構(gòu)的變化而修改代碼。BDE為許多數(shù)據(jù)庫(kù)提供了統(tǒng)一的接口API(ApplicationProgramInterface,應(yīng)用程序公共接口),它包括Dbase、Paradox、FoxPro、Access、Text、InterBase、Sybase、Oracle和MicrosoftSQLServer,同時(shí)也支持微軟的ODBC(OpenDatabaseconnectivity,開放的數(shù)據(jù)庫(kù)互連)數(shù)據(jù)源。系統(tǒng)只要提供數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序,BDE就能訪問這種類型的數(shù)據(jù)庫(kù),不需要了解數(shù)據(jù)庫(kù)的具體細(xì)節(jié)。BDE的核心數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件由一系列動(dòng)態(tài)連接庫(kù)組成,它們是BDE訪問本地?cái)?shù)據(jù)庫(kù)和遠(yuǎn)程數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序庫(kù)。對(duì)于單機(jī)使用數(shù)據(jù)庫(kù),C++Builder直接通過BDE來控制數(shù)據(jù)庫(kù)的存取,如圖1所示。對(duì)于遠(yuǎn)程數(shù)據(jù)庫(kù),BDE需通過ODBC或SQLLinks來控制數(shù)據(jù)庫(kù)的存取,如圖2所示。在訪問ODBC數(shù)據(jù)源之前,需要為BDE建立內(nèi)置的ODBC驅(qū)動(dòng)程序,即通過ODBC管理器(Administrator)負(fù)責(zé)安裝驅(qū)動(dòng)程序,管理數(shù)據(jù)源。C++Builder通過SQLLinks可訪問SQL服務(wù)器數(shù)據(jù)庫(kù),它們是Oracle、Sybase、SQLServer、DB2、Informix和InterBase數(shù)據(jù)庫(kù)。在C++Builder中通過BDEAdminstrator來進(jìn)行BDE數(shù)據(jù)庫(kù)引擎的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的安裝和數(shù)據(jù)庫(kù)連接參數(shù)的設(shè)置,以及創(chuàng)建、刪除、修改和維護(hù)數(shù)據(jù)庫(kù)別名。2數(shù)據(jù)庫(kù)訪問控制軟件C++Builder5中基于BDE上的連接數(shù)據(jù)庫(kù)控件有TTable、TQuery、TDatabase和TSession。TDatabase控件為應(yīng)用程序提供不同的控制數(shù)據(jù)庫(kù)連接的方法,如永久的連接、自定義的數(shù)據(jù)庫(kù)服務(wù)器登錄、事務(wù)控制、應(yīng)用程序中的BDE別名等。TTable和TQuery控件是最常用的數(shù)據(jù)庫(kù)訪問控件。TTable控件用來訪問數(shù)據(jù)庫(kù)中單個(gè)表;TQuery控件封裝了結(jié)構(gòu)化查詢語句,應(yīng)用程序通過結(jié)構(gòu)化查詢語句可以獲得多個(gè)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。TSession控件提供了一個(gè)應(yīng)用程序范圍內(nèi)的一組數(shù)據(jù)庫(kù)連接的全局管理。在連接數(shù)據(jù)庫(kù)時(shí)C++Builder自動(dòng)創(chuàng)建一個(gè)默認(rèn)會(huì)話期,這個(gè)默認(rèn)的會(huì)話期處理標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)連接,當(dāng)應(yīng)用程序要訪問不同網(wǎng)址上的多個(gè)數(shù)據(jù)庫(kù)表時(shí),就要使用TSession控件,每一個(gè)會(huì)話連接一個(gè)不同網(wǎng)址。各控件在數(shù)據(jù)庫(kù)應(yīng)用體系結(jié)構(gòu)中的位置如圖3所示。3數(shù)據(jù)庫(kù)名存存儲(chǔ)技術(shù)現(xiàn)以訪問遠(yuǎn)程數(shù)據(jù)庫(kù)為例,說明C++Builder5中連接數(shù)據(jù)庫(kù)操作的具體過程:(1)在控制面板中使用ODBCAdminstrator配置驅(qū)動(dòng)程序和數(shù)據(jù)源。(2)使用C++Builder5中的BDEAdminstrator建立數(shù)據(jù)庫(kù)別名,根據(jù)所用數(shù)據(jù)庫(kù)類型配置相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序和數(shù)據(jù)庫(kù)連接參數(shù)。(3)在應(yīng)用程序設(shè)計(jì)中使用TDatabase,TSession(也可不用)和TTable或TQuery數(shù)據(jù)庫(kù)訪問控件,并在對(duì)象查看器(ObjectInspector)的屬性頁(Properties)和事件頁(Events)設(shè)置相應(yīng)的屬性和事件。(4)使用數(shù)據(jù)源控件(TDataSourece)連接數(shù)據(jù)訪問控件,并使用數(shù)據(jù)感知控件連接數(shù)據(jù)源控件,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)顯示和操縱,達(dá)到與用戶交互的目的。2基于ado組件的數(shù)據(jù)庫(kù)連接1ado對(duì)象模型ADO的全名為ActiveDataObject,是Microsoft為了解決通用企業(yè)數(shù)據(jù)存取需求提出的解決方案UDA(UniversalDataAccess)之一。此方案包括ADO、OLEDB和ODBC,其中ADO是建立在OLEDB之上的提供較高級(jí)的數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)接口模型,它實(shí)現(xiàn)了一系列COM接口,通過數(shù)據(jù)提供者(DataProvider)和數(shù)據(jù)使用者(DataConsumer)來實(shí)現(xiàn)廣義的數(shù)據(jù)存取。ADO對(duì)象模型定義了一組可編程的自動(dòng)化對(duì)象,它有6種對(duì)象,4種集合。6種對(duì)象是:Connetion、Command、Paramter、RecordSet、Fiedld和Property;4種集合為:Fields、Properties、Parameters和Errors。ADO對(duì)象模型如圖4所示。ADO的實(shí)際數(shù)據(jù)存取操作是通過OLEDB驅(qū)動(dòng)程序訪問數(shù)據(jù)庫(kù)的,因此ADO適用于各種Client/Server應(yīng)用系統(tǒng)和基于Web的應(yīng)用,特別適用于一些腳本語言中數(shù)據(jù)庫(kù)訪問操作。利用ADO訪問數(shù)據(jù)庫(kù)的示意圖5如下。2tadorecodfig總體概述從圖4可以看出,使用最多的是三種對(duì)象:Connection、RecordSet和Command。Connection對(duì)象用于建立與數(shù)據(jù)庫(kù)服務(wù)器或其它數(shù)據(jù)庫(kù)的連接,在C++Builder5中對(duì)應(yīng)于TADOConnection控件;RecordSet對(duì)象主要用于獲取、保存、修改從數(shù)據(jù)庫(kù)得到的查詢結(jié)果,在C++Builder5中對(duì)應(yīng)于TADORecodSet控件;Command對(duì)象主要用于保存或發(fā)送需要反復(fù)執(zhí)行的查詢語句或服務(wù)器上存儲(chǔ)過程調(diào)用,在C++Builder5中對(duì)應(yīng)于TADOCommand控件。除TADOConnection為專門的連接數(shù)據(jù)庫(kù)控件外,TADORecordSet和TADOCommand也單獨(dú)支持對(duì)數(shù)據(jù)庫(kù)的連接。此外數(shù)據(jù)集控件TADODataSet、TADOTable、TADOQuery也多支持與數(shù)據(jù)庫(kù)的連接。TADOTable控件用于單一的表訪問;TADOQuery控件實(shí)現(xiàn)用SQL語句對(duì)數(shù)據(jù)庫(kù)表的查詢;TADODataSet控件是通過設(shè)置CommandText屬性命令串對(duì)數(shù)據(jù)源進(jìn)行操作,它不支持不返回結(jié)果集的DML語句,如delete、insert、updata等,要使用這些語句,選擇TADOCommand或TADOQuery控件。各ADO控件在數(shù)據(jù)庫(kù)應(yīng)用體系結(jié)構(gòu)中的位置如圖6所示。3數(shù)據(jù)庫(kù)添加功能的實(shí)現(xiàn)在C++Builder5中,ADO控件實(shí)質(zhì)上是一種數(shù)據(jù)訪問控件,許多ADO控件自身能實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接,也可以設(shè)置其Connection屬性為一個(gè)TADOConnection控件名,而在TADOConnection控件中設(shè)置連接屬性,連接屬性也可用代碼在運(yùn)行期間設(shè)置?,F(xiàn)具體說明ADO控件連接數(shù)據(jù)庫(kù)的操作過程:(1)在數(shù)據(jù)庫(kù)應(yīng)用程序中,使用ADO訪問控件。實(shí)現(xiàn)簡(jiǎn)單的表操作或查詢,可以使用TADOTable或TADOQuery;更一般地,可以使用TADODataSet控件;只控制數(shù)據(jù)庫(kù)的連接可使用TADOConnection控件;實(shí)現(xiàn)復(fù)雜的表操作或查詢,可以使用TADOCommand、TADORecordSet控件。(2)設(shè)置ADO訪問控件的ConnectionString屬性:點(diǎn)擊屬性欄中省略號(hào),出現(xiàn)配置窗口,選“UseConnectionString”,按Build鈕,在接下來的窗口中選擇數(shù)據(jù)提供者,按Next鈕,選擇數(shù)據(jù)庫(kù)的路徑和文件名,點(diǎn)擊測(cè)試連接按鈕,測(cè)試成功后,點(diǎn)“確定”鈕。也可以在程序運(yùn)行中動(dòng)態(tài)配置,其代碼為:(3)如要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作可利用SQL語句設(shè)置CommandText屬性或SQL屬性及其它一些操作。(4)使用數(shù)據(jù)源控件(TDataSource)連接ADO訪問控件,并使用數(shù)據(jù)感知控件(如TDBGrid)來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)顯示和操縱,達(dá)到與用戶交互目的。3ado與bre開發(fā)的比較從以上的分析中我們可以看到,BDE控件和ADO控件在連接數(shù)據(jù)庫(kù)時(shí)有本質(zhì)的不同,具體表現(xiàn)為:(1)從連接過程來看,BDE是通過BDE引擎以及ODBC來實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接,而ADO是通過OLEDB提供者直接與數(shù)據(jù)庫(kù)相連,因而ADO控件提供了一種避開BDE數(shù)據(jù)庫(kù)引擎直接與數(shù)據(jù)庫(kù)相連的方法。(2)從編程效率來看,由于BDE控件需要配置BDE數(shù)據(jù)庫(kù)引擎和ODBC數(shù)據(jù)源,這種方法不但復(fù)雜煩瑣,而且由于參數(shù)內(nèi)容不一,配置時(shí)令人感到無所適從,不宜把握,因而編程效率低;而ADO提供簡(jiǎn)單易操作的數(shù)據(jù)庫(kù)連接,并具有高度的靈活性,它可以使用相同的編程模式連接到不同的數(shù)據(jù)提供者,而不管給定提供者的特定特性,因而編程效率高。(3)從連接速度來看,由于OLEDB驅(qū)動(dòng)程序的運(yùn)行性能比ODBC驅(qū)動(dòng)程序高,加上BDE控件又通過BDE數(shù)據(jù)庫(kù)引擎來連接數(shù)據(jù)庫(kù),所以BDE控件的連接速度不如ADO控件。(4)從內(nèi)存占用率來看,使用ADO控件的內(nèi)存占用率明顯地比BDE控件低。(5)從連接的數(shù)據(jù)庫(kù)類型來看,ODBC本身是以SQLServer、Oracle等關(guān)系型數(shù)據(jù)庫(kù)作為訪問
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新能源電動(dòng)車充電服務(wù)協(xié)議
- 2025年生菜市場(chǎng)調(diào)查報(bào)告
- 膠囊行業(yè)市場(chǎng)前景調(diào)查及投融資戰(zhàn)略研究報(bào)告2025年
- 2025年截齒項(xiàng)目可行性研究報(bào)告
- 2025年中國(guó)高頻焊接管行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 2025年鋼壓延加工市場(chǎng)調(diào)查報(bào)告
- 有限合伙企業(yè)合伙合同模板
- 2025年中國(guó)普羅布考片行業(yè)發(fā)展趨勢(shì)及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025年塑料機(jī)械市場(chǎng)評(píng)估分析與投資戰(zhàn)略研究報(bào)告-定制
- 度假酒店裝修合同范例
- 產(chǎn)品質(zhì)量事故罰款單
- 質(zhì)量體系推行計(jì)劃表
- 《怎么都快樂》教學(xué)設(shè)計(jì)“十市聯(lián)賽”一等獎(jiǎng)
- 2023年全國(guó)10月00054自考管理學(xué)原理試卷真題
- GB/T 9204-2008固定頂尖
- GB/T 13295-2019水及燃?xì)庥们蚰T鐵管、管件和附件
- 始終不渝走和平發(fā)展道路的中國(guó)
- CB/T 3155-1994帶纜輔助索
- 3.1《太陽系大家庭》優(yōu)質(zhì)課件
- 2023年廣西文化產(chǎn)業(yè)集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
- 湘教版高中美術(shù)第四課審美變化中的自我課件2
評(píng)論
0/150
提交評(píng)論