TTable、TQuery 內部持有 Fields: TFields 集合,每個 TField 衍生物件對應資料表一欄。它們不可視、不可拖曳至表單,卻掌控每欄「是否顯示、怎麼顯示、能否編輯」。
| 特性 | 動態欄位 | 永久欄位 |
|---|---|---|
| 建立時機 | Active := True 時自動產生 | 設計期經 Fields Editor 明確建立 |
| 銷毀時機 | Active := False 即釋放 | 隨應用程式常駐,不隨資料集開關消失 |
| 結構變更彈性 | 自動適應資料表結構變動 | 若實體欄位被刪除,執行期會報錯 |
| 程式碼存取便利性 | 需透過 Fields[i] 或 FieldByName | 直接以 Table1欄位名 存取 |
| 顯示順序/格式固定性 | 依資料表原始順序 | 完全可控 |
| TField 衍生類別 | 對應資料庫型別 |
|---|---|
TStringField | 字串 |
TIntegerField | 整數 |
TCurrencyField | 貨幣 |
TBooleanField | 布林 |
TBlobField | 大型二進位物件 |
常用 TStringField、TIntegerField;程式邏輯對型別無感,差別僅在內部儲存與資料庫交換格式。
Table1 + DataSource1 + DBGrid1Table1.DatabaseName := 'DBDEMOS'、TableName := 'CUSTOMER.DB'、Active := TrueTable1 開啟 Fields Editor完成上述步驟,即擁有穩定、可程式控制、顯示順序固定的欄位集合,為後續格式化、計算欄位、驗證邏輯奠基。