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

          新聞中心

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

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

          作者: 時間:2016-12-21 來源:網絡 收藏

            0 引言

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

            1.基于ADO的體系結構

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

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

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

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

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

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

            

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

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

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

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

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

            Session.GetAliasNames(ComBoBx1.

            items)。

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

            Session.GeTTableNames(ComboBox1.

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

            6)如果單機“獲取表結構”按鈕,程序將分析選中的表的數(shù)據(jù)結構,然后生成響應的SQL語句,然后顯示在Memol控件中。在這個方法的實現(xiàn)過程中,還需要處理一個小問題,就是如何獲取對應表字段的數(shù)據(jù)類型。

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

            Adocommand1.CommandText:=memo1.

            Text;Adocommand1.Execute.

            8)如果單擊“復制數(shù)據(jù)”按鈕,則將選定表中的所有數(shù)據(jù)轉移到目標數(shù)據(jù)庫中對應的表中。

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

            3.結語

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



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();