with   adoquery1   do   
  begin   
      adoquery1.close;   
      adoquery1.sql.clear;   
      adoquery1.sql.text   := 'select   *   from   vlist   order   by   vtime';
      adoquery1.open;   
  end;
用的是dbgrid控件!!

解决方案 »

  1.   

     即然你這樣寫了就應該會排序的, 不排序的原因只能問你,你這段代碼是寫在哪裏的?? FORM加載時是不是執行的這個SQL
      

  2.   

    你的vtime是什么类型?有可能数据库的排序方式和你想象的不一样,呵呵
      

  3.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    with   adoquery1   do   
      begin   
          adoquery1.close;   
          adoquery1.sql.clear;   
          adoquery1.sql.text   := 'select   *   from   vlist   order   by   vtime';
          adoquery1.open;   
      end;end;源码是这样的。。
      

  4.   

    那没有问题呀,应该是按vtime的升序排序
      

  5.   


    我是通过adotable,adoquery,datasource,绑定dbgird!是通过控件来让数据显示在dbgird,原因是不是出在这里?然后才在form加载时写排序代码。
      

  6.   

    通过adotable,adoquery,datasource,绑定dbgird?
    还要adotable做什么? 
    估计你的datasource绑定的是adotable而不是adoquery。
    看下datasource的DataSet属性连的是哪个。
      

  7.   

    设置下
    datasource1.dataset:=adoquery1;
    dbgrid1.datasource:=datasource1;procedure TForm1.FormShow(Sender: TObject); 
    begin 
    with  adoquery1  do  
      begin  
          adoquery1.close;  
          adoquery1.sql.clear;  
          adoquery1.sql.text  := 'select  *  from  vlist  order  by  vtime'; 
          adoquery1.open;  
      end; end; 
    试试
      

  8.   

    綁定的話,一定數據源與DBGRID關聯,那麼只有可能用一個AdoQuery  或 AdoTable ?你上面的CREATE裏面寫是沒有錯的。  那現在的問題我覺得是:他的排序效果是什麼?? ASC,DESC? 還是比如你在CREATE執行了SQL,ONSHOW裏有沒有做什麼操作?
      

  9.   

    建议楼主:代码可精简:
    with  adoquery1  do  
      begin  
          close;  
          sql.clear;  
          sql.add('select  *  from  vlist  order  by  vtime'); 
          open;  
      end;