关于主从表的修改问题!我所有的分都给您!(100分)

  • 主题发起人 主题发起人 pckite2
  • 开始时间 开始时间
P

pckite2

Unregistered / Unconfirmed
GUEST, unregistred user!
主表:编号 性质 从表:编号 内容 日期
01 1 01 77
02 1 01 88
02 99
02 66
02 55
现在我想修改主表中的编号02改为03,同时从表中编号为02的记录也变为03
即变为:
主表:编号 性质 从表:编号 内容 日期
01 1 01 77
03 1 01 88
03 99
03 66
03 55
如何现实? 具体一些,谢谢1

 
1、在主表中定位记录;
2、从定位记录中读出编号;
3、根据所得编号在从表中定位记录;
4、修改从表中的记录数据;
5、修改主表中的记录数据;
OK.......
 
主表:Select * from tableMaster
从表:Select * from tableDetail where 编号=:编号
主表的OnAfterPost事件:
QueryDetail.fieldbyname('编号').value:=QueryMater.fieldbyname('编号').value;
保存代码:
Database1.StartTransaction;
try
QueryMaster.ApplyUpdates;
Querydetail.ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
QueryMaster.CommitUpdates;
QueryDetail.Commitupdates;




 
注意关闭约束
 
update 主表
set 编号=‘03’
where 编号='02'
update 从表
set 编号=‘03’
where 编号='02'
 
TO forgot2002:
谢谢!~ 我是初学者,你的‘保存代码:’后的代码是什么意思?怎么用?
 
queryMater.Text:='Select * from tableMaster';
QueryDetail.Text:='Select * from tableDetail where 编号=:编号';
queryMater.Open;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
...
queryMater.Post;
end;

procedure TForm1.queryMaterAfterPost(DataSet: TDataSet);
begin
QueryDetail.fieldbyname('编号').value:=QueryMater.fieldbyname('编号').value;
Database1.StartTransaction;
try
QueryMaster.ApplyUpdates;
Querydetail.ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
QueryMaster.CommitUpdates;
QueryDetail.Commitupdates;
end;
 
主从表建立关系即可!
 
同意楼上。
感觉这样设计数据好像不很规范,把从库的编号用主库的自增ID代替,
这样就不用关心从库的数据变化了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部