主从表中从表记录的删除(50分)

  • 主题发起人 主题发起人 snstsy
  • 开始时间 开始时间
S

snstsy

Unregistered / Unconfirmed
GUEST, unregistred user!
主从表中从表中从表有好几条记录,删除主表时从表记录还在
怎样删除它们呢?
 
加一个事件, 删除主表时 删除从表
在主表的beforedelete事件中 先查找从表的相关纪录删除
 
但是,怎样实现呢?
我用FILTER选出合适的记录然后一条一条删除,但是不成功。
总说“空记录不能进行删除”。
 
很简单。
假设你的主表中删除记录的标记(主从索引)为PID
则每次删除时执行以下语句:
With Query1 do begin
Sql.Clear;
Sql.Add('delete from 从表 where ID='+PID);
EexcSQL;
end;
即可。

 
在主表的beforedelete事件中记住id,然后再从表中根据id删除纪录.
李伟的新书有详细说明,值得看看.
 
同意 Urlzo 所说的,我也会这么做
 
可定义主从表之间的引用完整性.并让数据库支持联级删除.
 
最好先删除从表,而且我相信你后台一定没建外键
 
用引用完整性
 
用触发器,可能比较好!
 
kaiyangit:

'可定义主从表之间的引用完整性.并让数据库支持联级删除'怎么实现?
 
kaiyangit:

'可定义主从表之间的引用完整性.并让数据库支持联级删除'怎么实现?
 
并不是所有数据库都支持级联删除。
支持级联删除的数据库:打开DBD,通过引用完整性(Referential Constraints)对话话框选择“Delete Operation”。
不支持级联删除的数据库:最好利用数据模块,在数据模块中建立一个简单的(删除)方法,然后在程序中的任何地方调用。(非常简单实用)
 
接受答案了.
 

Similar threads

后退
顶部