请教高手:
用ODAC的OraQuery查询到DBGridEh显示,怎样实现点击列标题实现排序?
用AdoQuery设置AutoSortMarking和TitleButton就行了,但是OraQuery不行,
怎样设置才行呢?

解决方案 »

  1.   

    OraQuery没有这些方法,自己写了,也不复杂的,有2个方法:1、点击标题列后,通过判断降序和升序,写SQL重新取一次数据;
    2、使用OraQuery来查询,查询后的结果集复制到ADOQuery中(适合数据量小的);
      

  2.   

    没用过ODAC,给你一个ADO的方法看看有没有帮助
    设置DBGridEh Column的TitleButton属性为true
    procedure Tform1.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
      Column: TColumnEh);
    begin
       if column.Title.SortMarker=smdowneh then
          DM.ADOQuery1.Sort :=column.FieldName
       else
          DM.ADOQuery1.Sort :=column.FieldName +' DESC';
    end;
      

  3.   

    不是重取数据慢,是设置dbgrideh表头和显示列时慢
    有快速设置列标题的办法吗?
      

  4.   


          用下面这个属性可以改变数据集中的排列顺序
          ORAQuery1.indexnames:='fieldname1,fieldname2,...';      你可以从点击tittle事件中去改变他的值达到调整的目的
           
      

  5.   

      ORAQuery1.indexnames:='fieldname1 desc,fieldname2 desc,...';
      ORAQuery1.indexnames:='fieldname1 desc;fieldname2 desc;...';