关于N层ClientDataset的主从表控制.. ( 积分: 100 )

  • 主题发起人 主题发起人 天使鬼差
  • 开始时间 开始时间

天使鬼差

Unregistered / Unconfirmed
GUEST, unregistred user!
关于N层ClientDataset的主从表控制..
偶试了以下方法效果都不太理想:[:(]
1.用SQL语句联接,但是不容易取到后端SQL语句。
2.用Filter的方式,一次就把记录提到前端。即使设置了PacketeRecord也是一样..
3.用MasterSource的方式,各方面控制和性能非常不好。
不知道哪位大虾能提点一下..
 
关于N层ClientDataset的主从表控制..
偶试了以下方法效果都不太理想:[:(]
1.用SQL语句联接,但是不容易取到后端SQL语句。
2.用Filter的方式,一次就把记录提到前端。即使设置了PacketeRecord也是一样..
3.用MasterSource的方式,各方面控制和性能非常不好。
不知道哪位大虾能提点一下..
 
我现在用这个方法:写一个函数用来执行dataset,
funcation OpenSql(sql :string) : string;
with datasetdo
begin
..
commandtext := sql;
..
end;
客户端比如你选master表,detail表数据随之变化,传一段Sql到应用端的这个函数,然后得到所要数据, 如有更好方法,请赐.
 
用Filter的方式。
第一次获取相关的detail表数据时从后端获得,然后用ClientDataset的AppendData方法把纪录加入本地的ClientDataset_detail.data,然后用用Filter的方式显示,并且对对应的master记录做一个标记。根据标记判断是否需要从后端获得detail纪录。
以上只是在下的一些想法,望各位大虾指点。
 
to zhulilong,
用Filter的方式.......
用复制其它ClientDataSet的方法控制更加麻烦,
首先要判断在本地是否能Filter到,
如果本地没有Filter到,就要到后端再取数据。。
取回来的数据要判断是否在本地负责一直取相同地记录。。。
这多累呀。。!而且不见得有效率。。
 
to ou_ma:
偶差不多是用这种方式,只是我把SQL语句写在服务端的数据集,并且从表预留Params
在客户端主表移动就给从表参数赋值并打开。。
不知道还有没有其它的方法呢。。?
 
TDataSetProvider的Option的poAutoRefresh如何使用。。
 

Similar threads

回复
0
查看
848
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部