Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:关联列的数据不能删除

1楼
blackzhu 发表于:2008/10/8 21:36:00
  我上次就问了,关联列的数据不能删除,我觉得有一些问题。如果我在一张表中多输了数据或者输错了,其他列的数据都能删除,唯独关联列的数据不能删除,一直留在哪儿,觉得不舒服。能不能删除的?用什么办法,总不能每次去掉关联删除吧,易表可以的呀。
2楼
gdtgl 发表于:2008/10/9 1:04:00

修改主表的关联列的值.让子表中没有关联数据...删除.

做设计时.应考虑主表的关联列不可以重复(防止楼主所说的情况出现).

[此贴子已经被作者于2008-10-9 1:08:53编辑过]
3楼
lxl 发表于:2008/10/9 10:31:00
子表的记录可以随便删除

父表中的记录在子表中没对应数据的时候,可以删除,
但在子表中有对应的记录的时候,则不能删除,否则会造成子表中的记录成"孤儿".

2楼的办法虽然能删除父表记录,但是仍然造成子表中的记录成"孤儿"了
根据实际情况来处理
要么不删除,直接把父表的记录修改正确.(而且确保选中同步更新,子表和父表一起修改)
要么"灭门" 父表 子表的记录全部删除.


另外说明一点无关的:
其实在子表中直接增加记录也可能出现"孤儿".就像石头里面蹦出来的一样.
所以.通常做法是只能在父表中增加关联记录,而不能直接在子表中增加记录.
教程提过这样的方法,代码很简单:
 

DataTables("订单明细").AllowAddNew = False
Tables(
"订单.订单明细").AllowAddNew
= True

这样订单明细就不会出现"孤儿".

4楼
lxl 发表于:2008/10/9 10:53:00

像订单明细,必须有一个"父亲"(对应的订单)

但是,也有的另外一种情况,允许出现"孤儿"。举个例子:
“订单表”和“客户表”关联.
父表“客户表”中只储存大客户、批发商、长期客户的信息。其他客户的信息不保存。

那么在子表“订单表”中。有的订单能在父表中找到对应的记录,有的就找不到对应记录(成"孤儿")。
这种情况,添加“孤儿”的时候,只能在子表中直接增加记录了。

5楼
blackzhu 发表于:2008/10/9 13:27:00
以下是引用lxl在2008-10-9 10:53:00的发言:

像订单明细,必须有一个"父亲"(对应的订单)

但是,也有的另外一种情况,允许出现"孤儿"。举个例子:
“订单表”和“客户表”关联.
父表“客户表”中只储存大客户、批发商、长期客户的信息。其他客户的信息不保存。

那么在子表“订单表”中。有的订单能在父表中找到对应的记录,有的就找不到对应记录(成"孤儿")。
这种情况,添加“孤儿”的时候,只能在子表中直接增加记录了。

  理解,我仔细看了一下,可能是处于代码计算的字段不能删除,是不是参与代码计算的列不能删除,只能修改?

6楼
kylin 发表于:2008/10/9 13:58:00
一定要先删除该记录的所有子表的记录,然后就可以随意删除楼主所说的关联列的数据
5楼的理解是错误的。
7楼
blackzhu 发表于:2008/10/9 14:24:00
  我再看看。
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.