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