14.4 字段對(duì)象的使用
Ttable和TQuery部件中有一個(gè)TField類型的屬性Fiedls,F(xiàn)ields是TField類型的對(duì)象的列表,TField對(duì)象列表是Delphi數(shù)據(jù)庫中較難以理解的一個(gè)對(duì)象,它是 TTable 部件和TQuary部件的一部分,它們是不能夠選擇到窗體中的獨(dú)立的部件,而且無論是在設(shè)計(jì)階段還是在程序運(yùn)行過程中,它們都沒有可見的圖像。即使到Object Inspector窗中察看它們也很困難。
Tfield對(duì)象是在打開磁盤上的數(shù)據(jù)庫表時(shí)動(dòng)態(tài)產(chǎn)生的,并在數(shù)據(jù)庫表被關(guān)閉時(shí)自動(dòng)消失,TField對(duì)象可以控制表中的每一列是否在數(shù)據(jù)瀏覽部件中顯示以及以何種格式顯示等等。通過字段編輯器(Fields Editor)我們可以建立永久性的TField 對(duì)象列表代替動(dòng)態(tài)的Tfield對(duì)象列表供Delphi應(yīng)用程序使用,通過Fields Editor建立的永久性的字段對(duì)象會(huì)自動(dòng)地加入到程序庫單元的TForm類型定義中,它們保存在應(yīng)用程序中,即使數(shù)據(jù)庫表的基本結(jié)構(gòu)發(fā)生了改變,它也是一直保留著,當(dāng)然如果修改后的表中使得原來所定義的字段對(duì)象不再存在,Delphi應(yīng)用程序在運(yùn)行過程中會(huì)給出現(xiàn)錯(cuò)誤信息。
14.4.1 字段對(duì)象的類型
字段對(duì)象TField對(duì)應(yīng)數(shù)據(jù)庫記錄中的各個(gè)字段,因?yàn)閿?shù)據(jù)庫記錄中的字段有多種數(shù)據(jù)類型,因此對(duì)記錄字段可能出現(xiàn)的每一種數(shù)據(jù)類型都有一個(gè)獨(dú)立的TField類型與之對(duì)應(yīng)。TField的類型如表14.4所示
表14.4 字段對(duì)象的類型
━━━━━━━━━━━━━━━━━━━━━━━━━
字段對(duì)象的類型 對(duì)應(yīng)的數(shù)據(jù)類型
─────────────────────────
TBooleanField 布爾型數(shù)據(jù)
TCurrentyField 貨幣型數(shù)據(jù)
TStringField 字符串?dāng)?shù)據(jù)
TIntegerField 整數(shù)型數(shù)據(jù)
TBLOB 大二進(jìn)制對(duì)象
━━━━━━━━━━━━━━━━━━━━━━━━━
在大多數(shù)情況下可能使用的是TStringField和TIntegerField類型的字段對(duì)象,從編程的角度來看這些TField對(duì)象的不同類型是完全相同的,應(yīng)用程序是根本不必關(guān)心TField對(duì)象的實(shí)際類型,它們之間的主要區(qū)別在于:它們內(nèi)部保留的以及它們和數(shù)據(jù)庫表之間傳遞的數(shù)據(jù)類型不一樣。
14.4.2 創(chuàng)建永久性的字段對(duì)象
我們知道字段對(duì)象在設(shè)計(jì)和運(yùn)行階段都是不可見的,它既可以隨著磁盤上的數(shù)據(jù)庫文件被打開時(shí)動(dòng)態(tài)地生成也可以通過字段編輯器Fields Editor來創(chuàng)建它。 在應(yīng)用程序中使用Fields Editor可以為數(shù)據(jù)庫表中的字段創(chuàng)建相應(yīng)的永久性的TField對(duì)象,TField 部件是不可見的部件,但是通過它,我們可以定義數(shù)據(jù)庫表中各字段的顯示屬性和顯示順序以及控制字段的取值范圍等。下面的例子,告訴我們?nèi)绾问褂肍ields Editor定義Customer.DB表中的四字段,并在網(wǎng)格中顯示表中的記錄信息。
操作步驟:
1、建立一個(gè)基于 customer. DB 表的數(shù)據(jù)庫應(yīng)用窗體,并在窗體中用一個(gè)網(wǎng)格顯示customer.DB中的全部字段,詳細(xì)方法請(qǐng)參見14.1節(jié),建好的窗體如圖14.1所示。
2、設(shè)置窗體中Table1的Active屬性為True,使網(wǎng)格顯示表中的記錄。
3、選中Table1并雙擊鼠標(biāo)左鍵,打開字段編輯器Fields Editor,缺省情況下字段列表為空。
4、單擊鼠標(biāo)右鍵彈出一個(gè)彈出式菜單,然后選擇Add Fields菜單項(xiàng),缺省情況下表Customer.DB中的全部字段被選進(jìn)字段列表框。從字段列表框中選擇你要在網(wǎng)格中顯示的字段,具體做法是:?jiǎn)螕鬋ustno字段,并按住CTR鍵,再單擊Company、Phone、LastInviceDate字段,然后單擊OK按鈕,確認(rèn)被選擇的四個(gè)字段,時(shí)窗體中的DBGrid1中只顯示剛才被選中的四個(gè)字段值,而不再顯示表中其它的字段值。
5、改變字段的顯示順序。單擊LastInvoiceDate 字段并將它拖放到字段列表框中的第三行,即處于Company和Phone字段之間。此時(shí)窗體中顯示Customer.DB 表中記錄的字段將按新的順序顯示。
6、選擇Close按鈕,關(guān)閉字段編輯器Fields Editor。
7、按F9,運(yùn)行上述程序。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |