Query+Dbgrid
希望实现的效果是点击一下字段,结果集按照该字段排序,最好有源代码,千恩万谢~

解决方案 »

  1.   

    用adoquery或ClientDAtaSet吧,query好像没有排序的属性
    //以ClientDataSet为例
    procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    begin
      TClientDataSet(dbgrid1.DataSource.DataSet).IndexFieldNames:=Column.FieldName;
    end;
      

  2.   

    adoquery也可以啊。
    用adoquery.sort := '字段 ASC'
      

  3.   

    可以动态写sql语句的
    procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    begin
      Query1.Sql.Text := 'select * from tab_name order by ' + Column.FieldName;
      Query1.open;
      end;end;
      

  4.   

    请教 zj_pht():
    对于一个已经选出来的结果集,如果这样的话会丢失原来的查询条件吧。
    我想实现的是在执行了一次open后,针对这一次的结果集排序。是否要把原来的语句再重复一遍,然后加上排序条件呢,这样好像麻烦了一点,我想就利用现在的结果集直接在此基础上排序。
    谢谢指教!