主从表的效率问题
在主从表中,可以用两种方法去实现
1、使用AdoQuery的Parameter
2、使用AdoTable的Master
第1种方法中,当主表变化时,均会到服务器中从新获取数据,因此会使网络繁忙,而速度较慢
第2种方法中,从表一开始将会从服务中获取了所有的数据,然后当主表变化时,只会使用Filter命令,将符合主表变化的记录显示出来,因此大家在使用中可以看到,如果在从表中使用Locate命令时,如果有一些已经被筛选出去的记录符合条件,则常常会找不到从表中正在显示的记录,因为Locate命令是在整张从表中查找。使用该方法在一开始的时候会较慢,但随后的主表变化中,从表将能讯速变化,因为一切在客户端进行。但这种方法有一个缺点,因为其不能使用Sort命令,原因我也不知道。
根据以上两种情况,不知道各位在主从表的情况下,是使用哪种方法,两种似乎在效率上均不太好,而且第二种方法还不能使用Sort排序的情况。
问题点数:50、回复次数:9Top
1 楼GooderJump(GooderJump)回复于 2005-06-05 13:37:49 得分 0
没人理我啊Top
2 楼zhouyouben(爱因斯坦)回复于 2005-06-05 16:29:22 得分 0
很久以前用过这个 顶啊Top
3 楼GooderJump(GooderJump)回复于 2005-06-05 23:17:06 得分 0
各位大侠怎么就不肯出来帮帮我呢?Top
4 楼5207(踏雪)回复于 2005-06-05 23:21:23 得分 0
我常用TCLientDataSet,不知对你适不适用!Top
5 楼GooderJump(GooderJump)回复于 2005-06-06 09:05:46 得分 0
不行啊,我用的是Adoquery,如果用ClientDataset开发的话,似乎用到MIDAS,好像有点麻烦Top
6 楼Dreamnest(创新永无止境)回复于 2005-06-06 10:52:34 得分 20
用三个DataSet(SearchDataSet,MasterDataSet,DetailDataSet),其中SearchDataSet只取主从表相关连的主表的字段(取一个字段比取主表的所有字段快),然后MasterDataSet与DetailDataSet根据SearchDataSet的定位字段值相应到数据库中取出数据来(主表取一条数据,从表取与主表相关连的数据,速度不是问题)。Top
7 楼DELPHI__CRM(风雨无阻)回复于 2005-06-06 13:22:16 得分 20
用两个ADOQuery,DataSource
在主的afterscroll事件里获得
副的数据源Top
8 楼GooderJump(GooderJump)回复于 2005-06-06 22:47:57 得分 0
DELPHI__CRM(风雨无阻) Dreamnest(我笑,并不代表我快乐!)
你们两的方法均是使用AdoQuery来实现,那不是跟使用AdoQuery.DataSource来设置参数主从表一样吗?Top
9 楼Dreamnest(创新永无止境)回复于 2005-06-07 10:51:05 得分 10
在SearchDataSet的AfterScroll事件里才去触发主从表的打开,主表的内容永远都是一条数据来的,虽然SearchDataSet里面的数据是所有主表的数据,但SearchDataSet只取一个字段的所有数据比你取全部字段的所有数据快得多。
这与你的第二种方法是不同的,Top




