<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ADO的復(fù)雜數(shù)據(jù)庫編程的應(yīng)用

          基于ADO的復(fù)雜數(shù)據(jù)庫編程的應(yīng)用

          作者: 時間:2016-12-21 來源:網(wǎng)絡(luò) 收藏

            0 引言

            ADO(ActiveX Data Objects)是微軟提供對各種數(shù)據(jù)格式的高層接口(highlevelinterface),該接口已經(jīng)成為訪問數(shù)據(jù)庫的新的標(biāo)準(zhǔn)。使用這種接口的數(shù)據(jù)庫又稱為OLE DB數(shù)據(jù)庫。由于網(wǎng)絡(luò)數(shù)據(jù)庫的廣泛應(yīng)用,ADO現(xiàn)在越來越成為數(shù)據(jù)庫編程人員眼中的寵兒,ADO在復(fù)雜數(shù)據(jù)庫編程方面的功能非常強(qiáng)大。OLE DB數(shù)據(jù)庫可以使我們方便地訪問各種類型的數(shù)據(jù)庫,包括關(guān)系型或非關(guān)系型數(shù)據(jù)庫、E-Mail和文件系統(tǒng)、文本和圖形、以及各種自定義商用對象。將Delphi提供的系統(tǒng)數(shù)據(jù)源中的db格式數(shù)據(jù)轉(zhuǎn)換為微軟Access格式文件,同時,在轉(zhuǎn)換過程中,根據(jù)選中的數(shù)據(jù)表,還能生成響應(yīng)的創(chuàng)建表的SQL語句。

            1.基于ADO的體系結(jié)構(gòu)

            一個基于ADO的單層或兩層應(yīng)用程序通常由這么幾個部分組成:

            1)用戶界面,其主要部件是數(shù)據(jù)控件。如果所有的數(shù)據(jù)訪問都是通過程序?qū)崿F(xiàn)的,則數(shù)據(jù)控件是可選的;

            2)一個或多個數(shù)據(jù)集構(gòu)件,用于從數(shù)據(jù)庫引入數(shù)據(jù);

            3)一個或幾個TDataSource構(gòu)件,用于連接數(shù)據(jù)集與數(shù)據(jù)控件;

            4)一個連接構(gòu)件,用于連接到數(shù)據(jù)倉庫。 連接構(gòu)件在數(shù)據(jù)集構(gòu)件和通過數(shù)據(jù)倉庫訪問的數(shù)據(jù)庫之間提供通道。

            基于ADO的應(yīng)用程序的ADO層由以下幾部分組成:Microsoft ADO 2.1,OLEDB數(shù)據(jù)庫或用于數(shù)據(jù)倉庫訪問的ODBC驅(qū)動程序,指定的數(shù)據(jù)庫系統(tǒng)(例如,SQL數(shù)據(jù)庫)使用的客戶端軟件、數(shù)據(jù)庫支援系統(tǒng)、數(shù)據(jù)庫。所有這些外部實體必須存在,并且是基于ADO的應(yīng)用程序可以使用的。圖1 所示為ADO各組件功能。

            

            2.ADO復(fù)雜數(shù)據(jù)庫應(yīng)用基本步驟

            1)關(guān)閉Delphi中當(dāng)前所有活動工程,并通過執(zhí)行New Application命令新建一個工程,此時,系統(tǒng)會自動創(chuàng)建一個空白窗體作為程序的默認(rèn)操作區(qū)。

            2)為了實現(xiàn)對Access數(shù)據(jù)庫的連接,需要將ADO控件鏈接到目標(biāo)庫( Access類型)中,設(shè)置ADOConnection1的ConnectionString屬性,連接到目標(biāo)庫中,其他的ADO空間可以銅鼓他實現(xiàn)對目標(biāo)庫的連接。這可以通過Delphi提供的想到來實現(xiàn)。

            3)將其他ADO控件的Connection屬性都指向ADOConnection1,以實現(xiàn)對目標(biāo)數(shù)據(jù)庫的連接,然后設(shè)置Database空間的DataBaseName為“Iblocal”.

            4)在窗體的初始化過程中,還需要對一些控件的默認(rèn)屬性進(jìn)行設(shè)置:首先將本地機(jī)上的所有系統(tǒng)數(shù)據(jù)源顯示在ComBOBox1中,然后將三個按鈕的EnabLED屬性都設(shè)置為Fasle:

            Session.GetAliasNames(ComBoBx1.

            items)。

            5)當(dāng)在ComboBox1中選定一個數(shù)據(jù)源時,需要將該數(shù)據(jù)源中所有數(shù)據(jù)表顯示在ListBox1中,由于本程序需要用到得是db格式的數(shù)據(jù)文件,所以還需設(shè)置一個過濾條件,這可以處理ComboBox1de OnChange事件:

            Session.GeTTableNames(ComboBox1.

            items[ComboBox1.itemindes],'*db',false,false,listbox1.item)。

            6)如果單機(jī)“獲取表結(jié)構(gòu)”按鈕,程序?qū)⒎治鲞x中的表的數(shù)據(jù)結(jié)構(gòu),然后生成響應(yīng)的SQL語句,然后顯示在Memol控件中。在這個方法的實現(xiàn)過程中,還需要處理一個小問題,就是如何獲取對應(yīng)表字段的數(shù)據(jù)類型。

            7)當(dāng)SOL語句創(chuàng)建完畢并顯示在Memol控件中,單擊“創(chuàng)建表”將執(zhí)行創(chuàng)建表的命令,這個操作將通過ADDCommand1控件來實現(xiàn):

            Adocommand1.CommandText:=memo1.

            Text;Adocommand1.Execute.

            8)如果單擊“復(fù)制數(shù)據(jù)”按鈕,則將選定表中的所有數(shù)據(jù)轉(zhuǎn)移到目標(biāo)數(shù)據(jù)庫中對應(yīng)的表中。

            9)至此,完成工作。保存工程文件,然后運(yùn)行程序。

            3.結(jié)語

            總之,隨著網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)數(shù)據(jù)庫越來越現(xiàn)實出其重要性,ADO在這方面有著其獨到的強(qiáng)大功能



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();