如何为主细节MYSQL结构

时间:2017-01-31 07:46:42

标签: mysql delphi-2007

我有两个数据库表,一个是主数据库表,另一个是详细信息表。 我将dbexpress SQLQuery组件用于Master表,一个Datasetprovider&一个clientdataset。我检查了主表的数据集提供程序的Autorefresh,Cascade Deletes,Cascade Updates。我还设置了Datasetprovider的updateData事件,主表的所有字段都带有标记“pfInUpdate” 除了我设置“pfInKey”& “pfInWhere”标志。

SQLQuery1.Active:=true;
SQLQuery1.sql.Clear;
SQLQuery1.SQL.Add('select table1.*,');
SQLQuery1.SQL.Add('table2.AKRO_B_ID,table2.AKRO_B_EETT,table2.AKRO_B,
...');
SQLQuery1.SQL.Add(' from PATH1 as table1');
SQLQuery1.SQL.Add('left join PATH2 as table2 ON 
(table1.LINK_ID =   table2.LINK_ID)');
ClientDataset1.Active:=True;
ClientDataset1.Open;
ClientDataset1.LogChanges:=True;
Datasource1.Enabled:=True;

我将Dbexpress SQLDataset组件用于Detail表,一个Datasetprovider&一个clientdataset。 我在详细信息表组件的主窗体的Create Event上使用以下语法:

SQLDataSet1.CommandText:='SELECT * FROM PATH2 WHERE LINK_ID=LINK_ID'; 
ClientDataset2.Mastersource:=DataSource1;     
ClientDataset2.MasterFields:='LINK_ID';      
ClientDataset2.IndexFieldNames:='LINK_ID';    
SQLDataSet1.Active:=TRUE;
SQLDataSet1.Open;
ClientDataset2.Active:=True;
ClientDataset2.Open;
ClientDataset2.LogChanges:=True;
Datasource2.Enabled:=true;

问题在于,当我在主表上进行更改时,Post事件工作正常,但是当我对Detail表的字段进行了更改时,该表不起作用且详细信息表保持不变。似乎insert命令对两个Database表没有任何影响。因此,为了使主细节结构正常工作,配置所有组件的正确方法是什么?

0 个答案:

没有答案