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

Delphi 主明細資料庫應用實作:一對多與多層級關聯完整教學

     編輯:Delphi

14.3 主明細架構核心觀念

單表瀏覽無法滿足真實業務。主明細模式讓多個關聯資料表同步呈現:主表存綜合資訊(如客戶基本資料),明細表存詳細紀錄(如該客戶所有訂單),透過共同鍵值(如 CustNo)自動同步篩選。

14.3.1 兩表一對多:Customer.DB ↔ Orders.DB

元件佈局與關鍵屬性設定

元件關鍵屬性設定值/說明
Table1 (主表)TableNameCUSTOMER.DB
DatabaseNameDBDEMOS
ActiveTrue
DataSource1DataSetTable1
AutoEditFalse(防誤改)
Table2 (明細表)TableNameORDERS.DB
IndexFieldNamesCUSTNO(明細表索引鍵)
MasterFieldsCUSTNO(主表關聯鍵)
MasterSourceDataSource1
ActiveTrue
DataSource2DataSetTable2
DBGrid1DataSourceDataSource1(主表格)
DBGrid2DataSourceDataSource2(明細格)
DBNavigator1DataSourceDataSource1(控主表導航)

運作原理

使用者在 DBNavigator1 移動主表記錄指標時,Table2 依 MasterFields 自動篩選符合當前 CustNo 的訂單,DBGrid2 即時呈現該客戶所有訂單明細。

14.3.2 三表多層級:Customer → Orders → Items

訂單本身又是項目明細的主表。Table3 連 Items.DB,設 IndexFieldNames := 'ORDERNO'、MasterFields := 'ORDERNO'、MasterSource := DataSource2。此時 Orders.DB 同時扮演「Customer 的明細」與「Items 的主表」雙重角色,形成主-明細-明細三層聯動。

關鍵屬性速查表

層級TableIndexFieldNamesMasterFieldsMasterSource
主表Table1 (Customer)———
第一明細Table2 (Orders)CUSTNOCUSTNODataSource1
第二明細Table3 (Items)ORDERNOORDERNODataSource2

掌握此模式,即可構建任意深度的關聯資料瀏覽介面,無需撰寫一行 SQL。

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