主从表之间的数据一致性(删除)问题(50分)

  • 主题发起人 主题发起人 hedx
  • 开始时间 开始时间
H

hedx

Unregistered / Unconfirmed
GUEST, unregistred user!
使用TQuery控件的A,B两表,其关系为一对多,CachedUpdates置为True,使用Access数据
库。当删除A表的一条记录时需删除对应B表的多条记录。在UpdateRecord事件中写入代码
,有时会出现“At beginnign of Table”的错误提示,为何及如何解决???
 
先后顺序!
先从后主:)
 
它们之间在数据库层并没有设置关系。之所以先主后从,是因为要先判断能否删除主表的
记录,删除成功后,再删除从表。
 
>>是因为要先判断能否删除主表的记录,删除成功后,再删除从表
no!!
先从后主
 
主表删除了,从表就没有依靠了,哈哈
 
又学到东西了
 
既然判断出了是否可以删除主表,自然就是先从后主进行删除来。否则,

就如 sportsman 所说,被删除了主表记录的从表记录就无从对应。
 
先删除从表,从表记录的取值范围是null或主表已经存在的值,如果先删主表,
会报错,告诉你无法完成操作。能删的掉的话,那主外键约束还有什么意思?
呵呵,才怪!
 
相信了吧 ,:)
 
出错提示只是在删除第二条主表记录时才会发生(注:第一条已保存),我已说过在数据库
里并没有设置什么诸如外关键字等关系。且我删除时是使用SQL(Delete)语句,它并不经过
数据库的提交就会把数据给删掉!!!!!!!!
 
我已发现问题所在:在UpdateRecord事件中,使用了如下代码:
Query1.UpdateRecordTypes :=[rtDeleted];
Try
....
Finally
Query1.UpdateRecordTypes :=[rtModified,rtInserted,rtUnModified];
End;
...
若把这些代码去掉,则不会发生错误。不知为何??????
 
hedx:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部