由于ADO用的MySql的三方控件mydac(TMyQuery),
按如下方法实现不了,请问该怎么做呢?
1.在optioneh中设置:
AutosortMarking:=True
2.设置DbGridEh的属性:(不一定总要设置,与使用的数据连接有关)
sortlocal:=True;
3.uses 单元
Ado------ehlibADo
TclientData------ehlibCDS
BDE ---------ehlibBDE
4.Column属性
TitleButton:=True 

解决方案 »

  1.   

    ADO连接MYSQL是可以排序的。
    前段时间我写了个小程序是可以的,不过在我笔记本上,要晚上了
      

  2.   

    抱歉,不是ADO,是MySql的三方控件mydac(TMyQuery)
      

  3.   

    那你是怎么做的呢?help me...
      

  4.   

    排序要么是你查出来的结果就已经排过序的,这就要你在SQL语句里写了
    还有就是当你点击DbgridEh的时候排序的,这和数据库和连接方式是无关的,在DbgridEh上处理就行了
      

  5.   

    你在DBGRIDEh的SortMarkingChanged里增加这段代码,就可以排序了,当然还是要按你上面先操作的一样,把Column属性的TitleButton设成True procedure TfrmMainUnit.DBGRID_DTSortMarkingChanged(Sender: TObject);
    var
      s: string;
    begin
      if Sender is TDBGridEh then
        if TDBGridEh(Sender).DataSource.Dataset.Active and (TDBGridEh(Sender).SortMarkedColumns.Count > 0) then
        begin
          if TDBGridEh(sender).SortMarkedColumns.Items[0].Title.sortMarker = smupeh then
            s := ' ASC'
          else
            s := ' DESC';
          try
            TADOQuery((Sender as TDBGridEh).DataSource.dataset).Sort := TDBGridEh(Sender).SortMarkedColumns.Items[0].FieldName + s;
          except
            //
          end;
        end;
    end;
      

  6.   

    TADOQuery((Sender as TDBGridEh).DataSource.dataset).Sort := TDBGridEh(Sender).SortMarkedColumns.Items[0].FieldName + s;
    这里出内存错误