第十五章 數(shù)據(jù)訪問部件的應用及編程
在這一章里我們主要介紹Delphi的數(shù)據(jù)訪問部件的層次結(jié)構(gòu)、多部件之間的關(guān)系、部件的屬性、方法、事件以及各部件的應用。這些部件包括:
● TSession部件
● 數(shù)據(jù)集部件(TTable和TQuery)
● TDatasource部件
● 字段對象TField
● 字段編輯器的使用
● TReport部件和TBatchMove部件
我們對這些部件的屬性、方法和事件進行一般性的描述,讀者在實際使用Delphi開發(fā)應用程序時,還可以通過聯(lián)機幫助獲得有關(guān)部件更詳細的信息。
15.1 Delphi數(shù)據(jù)訪問部件的層次結(jié)構(gòu)
Delphi提供了強大的開發(fā)數(shù)據(jù)庫應用程序的能力,它給用戶提供了大量的數(shù)據(jù)訪問部件。以方便程序設計人員開發(fā)數(shù)據(jù)庫應用程序。這些部件中,有些部件繼承了另一些部件的屬性、方法和事件,也就是說多部件之間存在著繼承和被繼承的關(guān)系,各部件的這種關(guān)聯(lián)便構(gòu)成了一個層次結(jié)構(gòu)
圖15.1 Delphi數(shù)據(jù)訪問部件的層次結(jié)構(gòu)
TSession是全局性的部件,在應用程序運行時,它自動地建立,在設計階段和運行過程中它是一個不可見的部件。
TDatabase部件是為開發(fā)客戶/服務器數(shù)據(jù)庫應用程序時,設置登錄的數(shù)據(jù)庫的有關(guān)參數(shù)的,它在數(shù)據(jù)訪問部件頁上。
TDataset部件是不可見的,TTable和TQuery部件是由它派生而來的,這兩個部件一般被稱為數(shù)據(jù)集部件,它們在數(shù)據(jù)訪問部件頁上。
TDatasource部件是連接數(shù)據(jù)集部件和數(shù)據(jù)瀏覽部件的橋梁,它在數(shù)據(jù)訪問部件頁上。
TFields部件對應于數(shù)據(jù)庫表中的實際字段,它既可以在應用程序的運行過程中動態(tài)地生成也可以在程序設計階段用字段編輯器創(chuàng)建。它是不可見的部件,在程序中我們可以通過TField部件來訪問數(shù)據(jù)庫記錄的各個字段值。
15.2 Tsession部件及其應用
TSession部件一般用得較少,但它對于一些特殊的應用是很有用的,在每一個數(shù)據(jù)庫應用程序運行時Delphi自動地創(chuàng)建一個TSession部件。程序設計人既不能看見該部件也不能顯示地創(chuàng)建一個TSession 部件,但是我們可以在應用程序中全局性地使用TSession部件的屬性、方法。
15.2.1 TSession部件的重要屬性及作用
TSession部件的許多重要屬性是用于控制數(shù)據(jù)庫應用程序與數(shù)據(jù)庫的連接的,在一個應用程序中,可以全局性地設置TSession的有關(guān)屬性值,對與之相連接的磁盤上的數(shù)據(jù)庫進行控制。TSession部件主要有下列屬性:
Database屬性:是TSession中可以進行連接的所有數(shù)據(jù)庫的數(shù)據(jù)庫名字列表,這些數(shù)據(jù)庫的名字常常是實際數(shù)據(jù)庫的別名,包括數(shù)據(jù)庫的路徑、用戶名、用戶登錄口令等參數(shù)。
DatabaseCount屬性:是TSession中可以進行連接的所有數(shù)據(jù)庫的數(shù)量,它是一個整數(shù)。
KeepCounnections屬性:是一個布爾型屬性,用它說明應用程序是否保持與一個非活動數(shù)據(jù)庫的連接。因為對于一個數(shù)據(jù)庫,當該數(shù)據(jù)庫中沒有相應的數(shù)據(jù)集部件(TTable或TQuery)被打開時,該數(shù)據(jù)庫將自動地變成非活動的數(shù)據(jù)庫。缺省情況下,KeePcounnections的值是True,就是說應用程序總是保持著與數(shù)據(jù)庫的連接,即使數(shù)據(jù)庫變成了非活動的數(shù)據(jù)庫時,也是如此。如果將KeepConnections屬性設置成False,那么當數(shù)據(jù)庫由活動狀態(tài)變成非活動狀態(tài)時,應用程序與該數(shù)據(jù)庫的連接也隨之中斷。
NetFileDir屬性:說明BDE網(wǎng)絡控制文件的路徑名。
PrivateDir屬性:說明存取臨時文件的路徑名。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |