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

Delphi TTable 進階應用:記錄查找、Goto/Find 兩大模式與主明細關聯建立

     編輯:Delphi

15.4.2.2 記錄查找:Goto 模式 vs Find 模式

查找前提:目標欄位必須為關鍵欄位或輔助索引欄位(SQL Server 則為 IndexFieldNames 指定欄位)。

Goto 模式:四步驟精確控制

Table1.SetKey;                           // 1. 進入查找狀態
Table1.Fields[0].AsString := 'Smith';    // 2. 指定查找值
if Table1.GotoKey then                   // 3. 執行查找,回傳 Boolean
  ShowMessage('找到')
else
  ShowMessage('記錄沒找到');
  • 多欄位組合鍵:設 KeyFieldCount := 1 僅比對第一欄;需連續欄位(第 1、1-2、1-2-3),不可跳躍。
  • GotoNearest:不精確比對,找不到完全相同則定位最接近記錄(如輸 'Sm' 定位到 'Smith')。
  • 指定輔助索引:Table1.IndexName := 'CityIndex' 後再查找。

Find 模式:一行式簡潔寫法

Table1.FindKey(['Smith']);        // 精確
Table1.FindNearest(['Sm']);       // 模糊最近

內部封裝 SetKey+指定值+GotoKey,參數為Variant 陣列,對應索引欄位順序。FindKey/FindNearest 差異同 Goto 版。

15.4.2.3 主明細關聯:MasterSource/MasterFields

TTable 兩屬性建立一對多:

  • MasterSource:指向主表 TDataSource
  • MasterFields:主表關聯鍵(多鍵用分號 'OrderNo;CustNo')

設計期可用 Field Link Designer(Object Inspector 雙擊 MasterFields)視覺化配對:
Available Indexes 選明細表索引 → 主表選關聯鍵 → Add → Joined Fields 顯示 CustNo->CustNo。

15.5 TDataSource 回顧

連接資料集與資料感知元件的橋樑,屬性/事件極少,無資料感知元件時可不放。詳細屬性事件見前節。

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