在這一章裡我們主要介紹Delphi的數據訪問部件的層次結構多部件之間的關系部件的屬性方法事件以及各部件的應用這些部件包括
● TSession部件
● 數據集部件(TTable和TQuery)
● TDatasource部件
● 字段對象TField
● 字段編輯器的使用
● TReport部件和TBatchMove部件
我們對這些部件的屬性方法和事件進行一般性的描述讀者在實際使用Delphi開發應用程序時還可以通過聯機幫助獲得有關部件更詳細的信息
Delphi數據訪問部件的層次結構
Delphi提供了強大的開發數據庫應用程序的能力它給用戶提供了大量的數據訪問部件以方便程序設計人員開發數據庫應用程序這些部件中有些部件繼承了另一些部件的屬性方法和事件也就是說多部件之間存在著繼承和被繼承的關系各部件的這種關聯便構成了一個層次結構
TSession是全局性的部件在應用程序運行時它自動地建立在設計階段和運行過程中它是一個不可見的部件
TDatabase部件是為開發客戶/服務器數據庫應用程序時設置登錄的數據庫的有關參數的它在數據訪問部件頁上
TDataset部件是不可見的TTable和TQuery部件是由它派生而來的這兩個部件一般被稱為數據集部件它們在數據訪問部件頁上
TDatasource部件是連接數據集部件和數據浏覽部件的橋梁它在數據訪問部件頁上
TFields部件對應於數據庫表中的實際字段它既可以在應用程序的運行過程中動態地生成也可以在程序設計階段用字段編輯器創建它是不可見的部件在程序中我們可以通過TField部件來訪問數據庫記錄的各個字段值
Tsession部件及其應用
TSession部件一般用得較少但它對於一些特殊的應用是很有用的在每一個數據庫應用程序運行時Delphi自動地創建一個TSession部件程序設計人既不能看見該部件也不能顯示地創建一個TSession 部件但是我們可以在應用程序中全局性地使用TSession部件的屬性方法
TSession部件的重要屬性及作用
TSession部件的許多重要屬性是用於控制數據庫應用程序與數據庫的連接的在一個應用程序中可以全局性地設置TSession的有關屬性值對與之相連接的磁盤上的數據庫進行控制TSession部件主要有下列屬性
Database屬性是TSession中可以進行連接的所有數據庫的數據庫名字列表這些數據庫的名字常常是實際數據庫的別名包括數據庫的路徑用戶名用戶登錄口令等參數
DatabaseCount屬性是TSession中可以進行連接的所有數據庫的數量它是一個整數
KeepCounnections屬性是一個布爾型屬性用它說明應用程序是否保持與一個非活動數據庫的連接因為對於一個數據庫當該數據庫中沒有相應的數據集部件(TTable或TQuery)被打開時該數據庫將自動地變成非活動的數據庫缺省情況下KeePcounnections的值是True就是說應用程序總是保持著與數據庫的連接即使數據庫變成了非活動的數據庫時也是如此如果將KeepConnections屬性設置成False那麼當數據庫由活動狀態變成非活動狀態時應用程序與該數據庫的連接也隨之中斷
NetFileDir屬性說明BDE網絡控制文件的路徑名
PrivateDir屬性說明存取臨時文件的路徑名
TSession部件的方法
TSession部件中的大部分方法是用於向用戶提供與應用程序相連接的數據庫的信息如數據庫的名字及別名數據庫中的表名以及數據庫引擎BDE的有關參數等在設計數據庫應用程序時想要獲取有關數據庫的信息調用TSession部件的下列方法將會大大簡化程序的設計
GetAliasNames方法調用該方法我們可以獲得數據庫引擎BDE中定義的數據庫別名
GetAliasParams方法該方法主要用於獲取我們在BDE中定義數據庫別名時所說明的參數值如BDE所在的目錄路徑以及實際名稱等
GetDatabaseNames 方法調用該方法可以幫助我們獲得當前應用程序可以進行連接的所有數據庫的名字數據庫的名字是用戶使用BDE工具定義的實際數據庫的別名
GetDriverNames方法數據庫引擎BDE可以與多種數據庫管理系統相連接如客戶/服務器數據庫管理系統OracleSybase以及本地數據庫管理系統dBASEParadox等BDE與每一種數據庫管理系統進行連接時都有相應的驅動程序而且這些驅動程序都可以選擇地安裝通過調用GetDriverNames方法我們可以獲得當前BDE安裝的數據庫驅動程序的名字
GetDriverParams方法BDE的數據庫驅動程序中包含著多個參數如支持的民族語言DBMS的版本號文件塊大小等對於服務器上的DBMS還有數據庫服務器的名字等等
GetTableNames方法因為每一個數據庫都是由多個數據庫表組成的我們通過說明數據庫名然後調用GetTableNames方法便可以獲得該數據庫中全部的數據庫表的名字
上述這些方法在調用時都需要一個字符串列表作為參數而且都返回一個字符串列表的值
TSession部件還有一個叫DropConnections的方法用於控制應用程序與數據庫的連接當調用DropConnections方法時應用程序與所有的數據庫的連接將會切斷
TSession部件應用舉例
例:我們創建一個應用程序通過調用TSession有關的方法獲取當前應用程序可以進行連接的數據庫的名字以及獲取其中任意一個數據庫中的全部數據庫表的名字
通過TSession部件獲取數據庫的有關信息
窗體中主要使用了兩個列表框其中列表框DatabaselistBox用於顯示數據庫的名字列表框TablelistBox用於顯示數據庫中的表名程序運行完後數據庫的名字顯示在DatabaselistBox列表框中當用戶單擊DatabaselistBox列表框中的數據庫名時該數據庫全部的數據庫表的名字將會顯示在TablelistBox列表框中有關的程序代碼如下
[] [] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25161.html