读书人

两个adoquery做主从表和业务主键引发的

发布时间: 2013-02-24 17:58:56 作者: rapoo

两个adoquery做主从表和业务主键引发的问题。。
我用系统的方式做主从表,链接方法如右:adoquery1->DATASOURCE1->adouqery2->DATASOURCE2

这个方法很简单,但是因为我是用业务主键,当adoquery1中的主键字段在修改但未提交的时候,adouqery2居然会重查询了,真晕!

能不能让adouqery1的字段提交后才使adoquery2重查询呢?

我也知道还有一个方法,就是不用系统这样的主从表方式,在adoquery1.afterscroll事件写代码使adoquery2重查询,但这样就没有第一种方法这么方便。。。

希望大家能给点建议,解决这个问题。谢谢。

[解决办法]
一、修改时,暂时断开主从Tadoquery的关联及断开感知控件,待提交后恢复;
二、显示还显示用的Tadoquery,编辑或增删用另外一套Tadoquery,有改变时,刷新显示用的Tadoquery。

[解决办法]
ADOQuery2.DataSource:=nil;//断开主从
ADOQuery2.DataSource:=DataSource1;//恢复主从关联

ADOQuery1.DisableControls;//断开感知控件(断开后,感知控件保存着断开前的显示状态)
ADOQuery2.DisableControls;//断开感知控件
ADOQuery1.EnableControls;//恢复感知控件的连接
ADOQuery2.EnableControls;//恢复感知控件的连接

[解决办法]
用afterscroll

读书人网 >.NET

热点推荐