CoreLab(ODAC等)的数据库引擎 如何清除dataset的排序(50分)

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
比如常见的TAdoQuery;
它的排序处理是:
1.正排序 : AdoQuery1.Sort:='field1';
2.反排序 : AdoQuery1.Sort:='field1 desc';
3.恢复不排序的初始状态: AdoQuery1.Sort:='';

ODAC作为著名的高效三方组件,类似功能也有
它的排序处理是:
1.正排序 : OraQuery1.IndexFieldNames:='field1';
2.反排序 : OraQuery1.IndexFieldNames:='field1 desc';
3.恢复不排序的初始状态: OraQuery1.IndexFieldNames:='';

可是 OraQuery1.IndexFieldNames:=''; 这句话好像对排序没有作用,不能通过它来还原最初排序状态;我跟踪了odac组件里的相关源码,但是没有找到方法,
希望对此有研究的朋友能够提供点思路或方法;


有人会说,要么正排序,要么反排序,干嘛要恢复成不排序的状态;

我想说的是,有的时候,还是需要不排序的,比如
1.我们的系统设计的时候,就在程序的sql语句里把order by 写好,这个默认的状态应该是最佳的;如果用户一旦使用了按某个字段的正反排序而不能恢复默认,那么就不能恢复sql里默认的order by 的次序;
2.对数据维护的时候,如果DataSet有排序,就会感觉数据在Post的时候,因排序而导致数据乱跳;感觉不是很好;







ODAC的下载是:
http://www.2ccc.com/article.asp?articleid=4603
 
http://bbs.2ccc.com/topic.asp?topicid=310580
 
刚给odac的开发商的技术支持 support@devart.com 发了邮件:

内容如下(我的英文很烂,不过应该把意思表达出来了)

hello,i like use odac,sdac in delphi2007; i find them very power and fast!
but i find it can not clear sort ;
for example: AdoQuery1.Sort:='' can clear sort ;but odac can not do it ;

When I want sort by a field,i can write: OraQuery1.IndexFieldNames:='field1';
but when i want to clear sort ,i can not use: OraQuery1.IndexFieldNames:=''
i want to know :how to clear sort?
 
得到开发商的回复了:
主 题: Re: how to clear Sort (OraQuery1.IndexFieldNames:='' ) [举报垃圾邮件]
主题: Re: how to clear Sort (OraQuery1.IndexFieldNames:='' )
发件人: "Oleg Plashkin" <olegp@devart.com> [添加到通讯录] [查看邮件往来] [拒收] [邀请]
收件人: daizhicun <daizhicun@126.com>
抄送人: (无)
日 期: 2008-12-01 17:04:38

Hello,

ODAC and SDAC does not support this feature.

Best regards,
Oleg Plashkin
----- Original Message -----

看来, odac的开发商不支持啊,没有办法了;
不过我想改写代码应该能实现,就不知道工作量有多大了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
659
import
I
后退
顶部