兩個表之間的主/明細表關系應用非常廣泛。因此為數據庫應用程序開發人員提供簡單的方法來實現它是非常重要的。讓我們看看如何實現這項功能。
假如我們在 "Department" 和 "Employee" 之間建立了主/明細表關系。"Department" 表包含以下字段: DepNo, DepName 和 Location。DepNo 是一個數字型的主鍵,其它兩個字段是字符串類型。
"Employee" 表包含以下字段: EmpNo, EmpName, Job, Manager 和 DepNo。 EmpNo 和 DepNo 是數字型字段, EmpName 和 Job 是字符串型字段。EmpNo 是一個主鍵且 DepNo 是一個綁定 "Employee" 和 "Department" 的外鍵。
這是顯示和編輯數據表所必需的。
ODAC 提供了兩種綁定數據表的方法。第一個代碼例子顯示了通過參數綁定兩個 TOraDataSet 組件 (TOraQuery, TSmartQuery, TOraTable 或 TOraStoredProc) 到主/明細關系中。
procedure TForm1.Form1Create(Sender: TObject);
var
Master, Detail: TOraQuery;
MasterSource: TDataSource;
begin
// 創建主數據集
Master := TOraQuery.Create(Self);
Master.SQL.Text := 'SELECT * FROM Department';
// 創建明細數據集
Detail := TOraQuery.Create(Self);
Detail.SQL.Text := 'SELECT * FROM Employee WHERE DepNo = :DepNo';
// 主表通過 TDataSource 組件來連接明細表
MasterSource := TDataSource.Create(Self);
MasterSource.DataSet := Master;
Detail.MasterSource := MasterSource;
// 打開主數據集和明細數據集
Master.Open;
Detail.Open;
end;