14.4 字段對象的使用
Ttable和TQuery部件中有一個TField類型的屬性Fiedls,Fields是TField類型的對象的列表,TField對象列表是Delphi數據庫中較難以理解的一個對象,它是 TTable 部件和TQuary部件的一部分,它們是不能夠選擇到窗體中的獨立的部件,而且無論是在設計階段還是在程序運行過程中,它們都沒有可見的圖像。即使到Object Inspector窗中察看它們也很困難。
Tfield對象是在打開磁盤上的數據庫表時動態產生的,並在數據庫表被關閉時自動消失,TField對象可以控制表中的每一列是否在數據浏覽部件中顯示以及以何種格式顯示等等。通過字段編輯器(Fields Editor)我們可以建立永久性的TField 對象列表代替動態的Tfield對象列表供Delphi應用程序使用,通過Fields Editor建立的永久性的字段對象會自動地加入到程序庫單元的TForm類型定義中,它們保存在應用程序中,即使數據庫表的基本結構發生了改變,它也是一直保留著,當然如果修改後的表中使得原來所定義的字段對象不再存在,Delphi應用程序在運行過程中會給出現錯誤信息。
14.4.1 字段對象的類型
字段對象TField對應數據庫記錄中的各個字段,因為數據庫記錄中的字段有多種數據類型,因此對記錄字段可能出現的每一種數據類型都有一個獨立的TField類型與之對應。TField的類型如表14.4所示
表14.4 字段對象的類型
━━━━━━━━━━━━━━━━━━━━━━━━━
字段對象的類型 對應的數據類型
─────────────────────────
TBooleanField 布爾型數據
TCurrentyField 貨幣型數據
TStringField 字符串數據
TIntegerField 整數型數據
TBLOB 大二進制對象
━━━━━━━━━━━━━━━━━━━━━━━━━
在大多數情況下可能使用的是TStringField和TIntegerField類型的字段對象,從編程的角度來看這些TField對象的不同類型是完全相同的,應用程序是根本不必關心TField對象的實際類型,它們之間的主要區別在於:它們內部保留的以及它們和數據庫表之間傳遞的數據類型不一樣。
14.4.2 創建永久性的字段對象
我們知道字段對象在設計和運行階段都是不可見的,它既可以隨著磁盤上的數據庫文件被打開時動態地生成也可以通過字段編輯器Fields Editor來創建它。 在應用程序中使用Fields Editor可以為數據庫表中的字段創建相應的永久性的TField對象,TField 部件是不可見的部件,但是通過它,我們可以定義數據庫表中各字段的顯示屬性和顯示順序以及控制字段的取值范圍等。下面的例子,告訴我們如何使用Fields Editor定義Customer.DB表中的四字段,並在網格中顯示表中的記錄信息。
操作步驟:
1、建立一個基於 customer. DB 表的數據庫應用窗體,並在窗體中用一個網格顯示customer.DB中的全部字段,詳細方法請參見14.1節,建好的窗體如圖14.1所示。
2、設置窗體中Table1的Active屬性為True,使網格顯示表中的記錄。
3、選中Table1並雙擊鼠標左鍵,打開字段編輯器Fields Editor,缺省情況下字段列表為空。
4、單擊鼠標右鍵彈出一個彈出式菜單,然後選擇Add Fields菜單項,缺省情況下表Customer.DB中的全部字段被選進字段列表框。從字段列表框中選擇你要在網格中顯示的字段,具體做法是:單擊Custno字段,並按住CTR鍵,再單擊Company、Phone、LastInviceDate字段,然後單擊OK按鈕,確認被選擇的四個字段,時窗體中的DBGrid1中只顯示剛才被選中的四個字段值,而不再顯示表中其它的字段值。