數據集部件的事件
數據集部件TTable或TQuery具有很多的事件為這些事件編寫相應的程序代碼可以進行有效性驗證計算可計算字段的值確認對數據庫表的多種操作等等這些事件及其描述如表所示
表 數據集部件常用的事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 描 述
───────────────────────────────────
BeforeOpenAfteropen 在數據集部件被打開之前/之後被觸發
───────────────────────────────────
BeforeCloseAfterclose 在數據集部件被關閉之前/之後被觸發
───────────────────────────────────
BeforeInsertAfterInsert 在數據集部件進入插入狀態之前/之後被觸發
───────────────────────────────────
BeforeEditAfterEdit 在數據集部件被編輯之前/之後被觸發
───────────────────────────────────
BeforePostAfterPost 在數據集部件投寄被修改的記錄之前/之後被觸發
───────────────────────────────────
BeforeCancelAfterCancel 在數據集部件取消前一步操作之前/之後被觸發
───────────────────────────────────
BeforeDeleteAfterDelete 在數據集部件刪除當前記錄之前/之後被觸發
───────────────────────────────────
OnNewRecord 當建立一條新記錄時被觸發
───────────────────────────────────
OnCalcFields 當為表中的計算字段計算字段值時被觸發
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TTable部件及應用
在前一節裡我們介紹了數據集部件TTable 和TQuery 的共同的一些屬性和方法TTable部件是Delphi數據庫編程中要經常使用的最重要的部件之一它是數據庫應用程序訪問數據庫時必須使用的數據集部件之一在這一節裡我們重點介紹TTable部件特有的屬性和方法TTable部件所有的屬性方法和事件都可以在聯機幫助中查到
TTabel部件主要的屬性
DatabaseName屬性和TableName屬性
DatabaseName屬性是說明數據庫應用程序所操作的數據庫的名字它可以是由BDE定義的數據庫的別名顯式說明的數據庫文件所在的磁盤路徑或者由TDatabase部件定義的一個數據庫名DatabaseName屬性常常是一個由BDE定義的數據庫的別名使用由BDE定義的數據庫的別名代替數據庫實際所在的路徑和名字好處是當實際的數據庫存放的位置發生變化時只需利用BDE簡單地設置一下該數據庫的別名而數據庫應用程序無需修改有關BDE的使用請參看BDE的設置應用TabelName屬性用以說明當前TTable部件所連接的實際的數據庫表這兩個屬性一般都在設計階段指定當然在程序運行過程中也可以設置但是要修改這兩個屬性時必須要在TTabel的Active屬性為False時進行當TTable的Active屬性為True時這兩個屬性是不能被修改和設置的
TableType屬性
該屬性說明與TTable部件相連接的數據庫表的類型當TableType屬性設置成Default時該屬性所說明的數據庫表的類型由數據庫文件的擴展名決定
● 若數據庫文件的擴展名為DB或沒有擴展名表的類型是Paradox表
● 若數據庫文件的擴展名為DBF時表的類型是dBASE表
● 若數據庫文件的擴展名為TXT時表的類型是ASCII表
如果TableType屬性不設定為Default那麼與TTable 部件相連的數據庫表的類型由TableType中的設置的值決定不用考慮數據庫文件的擴展名
KeyExclusive屬性
該屬性的一個作用是說明在數據庫表中查找記錄時將記錄移到與查找值相匹配的記錄處還是將記錄指針移到與查找值相匹配的記錄後面一條記錄處該屬性是布爾型變量當它的值為False時(缺省情況下為False)將記錄指針移到相匹配的記錄處為True時將記錄指針移到相匹配記錄的後面一條記錄處該屬性另一個作用是在表中指定檢索范圍時用來說明是否包括滿足過濾條件的邊界記錄當KeyExclusive的值為False時檢索范圍包括邊界記錄否則不包括邊界記錄有關詳細的操作請參看限定表中記錄的檢索范圍
IndexFields屬性和IndexFieldsCount屬性
IndexFields的屬性值是數據庫表中字段名列表它包含與TTable部件相連的數據庫表中的全部索引字希IndexFieldsCount屬性說明表中索引字段的個數這兩個屬性值都是只讀的只有在程序運行過程中可用
IndexName屬性和IndexFieldNames屬性
IndexName屬性中存放著在建立數據庫表時為數據庫表定義的所有輔助索引名它是一個輔助索引名列表是只讀屬性IndexFieldNames屬性指定用於數據庫表索引排序的字段名多個字段名之間用分號隔開例如對CustomerDB表中的客戶記錄按郵政編碼ZipCode和客戶號碼CustNo排序時可以設定IndexFieldNames的值為
ZipCode ; CustNo
在IndexFieldNames屬性中指定的字段必須存在於相應的數據庫表中否則會導致錯誤IndexName和IndexFieldName是互斥的每次只能指定其中一個屬性的值不能同時為兩個屬性都指定屬性值
[] [] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25157.html