ADOQuery控件,JOIN三个表的联合查询,其中有一个主表,其他两个只是提取某些字段.
现在对这个ADOQuery控件进行Delete,Update操作,但是只想更新主表中的字段而不改变其他两个表的数据,如何做?
我查了ADO帮助,说有一个Unique Table动态属性,可以设定这个属性以后的增删改都只对这个此属性的表起作用.在Dephi中如何设置?
这个属性是否需要ADO驱动的支持,驱动不同是否也有变化?
现在对这个ADOQuery控件进行Delete,Update操作,但是只想更新主表中的字段而不改变其他两个表的数据,如何做?
我查了ADO帮助,说有一个Unique Table动态属性,可以设定这个属性以后的增删改都只对这个此属性的表起作用.在Dephi中如何设置?
这个属性是否需要ADO驱动的支持,驱动不同是否也有变化?
添加时从表字段不会显示我是这么使用的:
用LookUp字段显示从表字段
这样删除,添加都不会有问题
我看ADO的帮助说明,有动态属性Unique Table,Unique Sechma,Unique Catalog可以设置一个更新表,以后的操作对其他表不起作用.
但是不知道如何设置,设置了还出错,说什么"Unique Table不存在或没有完全定义".
1、删除主表中的记录,从表中的关联记录是否删除?
2、修改主表记录关联字段,关联表中的数据是否修改?为避免此矛盾,最好这么做:
1、用SQL语句删除而非通过简单的DataSet.Delete
2、通过关联所取数据不允许修改
老大,在BDE里面关联数据是不能修改的,只读.ADO里面可以,但是过犹不及,他可以更新所有的关联表啊,要不你试试.
To:lihao_ningxia(耗子)
现在找不用SQL语句实现和不用LookKup解决的方法.
“通过关联所取数据不允许修改”难道你不明白,怎么样修改数据我外乎通过数据感应控件TDBGrid、TDBText等修改或者通过FieldByName()模式修改,在Delphi中不通过这些方式怎么修改?
因为有D4的多表更新有BUG所以书里写了一段手动编写多表更新的代码,可以参考。