首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 字段對象存取全解析:動態與永久欄位的讀寫技巧

     編輯:Delphi

14.4.4 字段對象存取機制詳解

Delphi 中的字段對象(TField 衍生類別)雖在設計與執行期皆不可見,但擁有完整的屬性、方法與事件,是資料呈現與操作的核心中介。依建立時機分為動態欄位與永久欄位,存取方式截然不同。

動態字段對象:以索引或名稱間接存取

動態欄位隨資料集開啟自動產生,對應資料表每一欄,存放於 Fields 陣列屬性(索引從 0 起)。

方式一:索引存取(適合迴圈批次處理)

Table1.Fields[0].DisplayLabel := '客戶編號';  // 第一欄

方式二:FieldByName 名稱存取(語意清晰、易維護)

Table1.FieldByName('Company').DisplayLabel := '公司名稱';

永久字段對象:直接以元件名稱存取

經 Fields Editor 建立的永久欄位,會自動加入表單類別宣告,命名慣例為 資料集名稱+欄位名稱(如 Table1CustNo),可直接引用:

Table1CustNo.DisplayLabel := '客戶編號';
Table1CustNo.DisplayWidth := 12;

14.4.4.3 字段值的讀取與型別轉換

Value 屬性回傳欄位原始值,但型別必須相容才能直接指派。若型別不符,需透過轉換屬性:

目標型別轉換屬性適用欄位類型
StringAsString所有類型
IntegerAsInteger數值、布林
FloatAsFloat數值、貨幣
DateTimeAsDateTime日期、時間
BooleanAsBoolean布林、字串

實務範例:安全讀寫不同型別欄位

var
  CustNoDouble: Double;
  CustNoInt: Integer;
  CustNoStr: string;
begin
  // 字串欄位直指
  Edit1.Text := Table1Company.Value;           // TStringField → string ✓

  // 數值欄位需轉型
  Edit1.Text := Table1CustNo.AsString;         // TFloatField → string ✓
  // Edit1.Text := Table1CustNo.Value;        // ✗ 執行期錯誤:型別不符

  // 指派給變數
  CustNoDouble := Table1CustNo.Value;          // Double ← Float ✓
  CustNoInt    := Table1CustNo.AsInteger;      // Integer ← Float ✓
  CustNoStr    := Table1CustNo.AsString;       // String ← Float ✓
end;

關鍵提醒:AsString 是最通用的橋樑,幾乎所有欄位型別皆支援轉為字串,是介面顯示的首選;寫入時亦可用 Table1CustNo.AsString := Edit1.Text 由元件內部解析。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved