Alterar Ordem no DBGrid

27/09/2004

Utilizo o componente DAOQuery para conectar minhas tabelas, pois utilizo mais de 02 tabelas para o DBGRID. Acontece que ao tentar reordenar o DBGRID através do componente TRadioGroup, ocorre um erro avisando que já existe o comando ´order´. Como posso retirar somente o comando ´order by´ sem ter que desconectar da tabela?


Paulofrrz

Respostas

27/09/2004

Sandra

Paulo,

Tente algo parecido com:

with ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add(´Select <o que quer> from SuasTabelas´);
  SQL.Add(´Where <alguma coisa1> Like :(dependendo, use o =)<SeuParam>
  Case RadioGroup1.ItemIndex of
    0: SQL.Add(´Order by <seu critério1>´);
    1: SQL.Add(´Order by <seu critério2>´);
    2: SQL.Add(´Order by <seu critério3>´);
  end;
  Parameters.ParamByName(´SeuParam´).Value (se houver) := <qualquercoisa>;
  Open;
end;

Experimente se funciona!

Ou então, veja se este tópico ajuda: [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=52174&highlight=desc]Como ordenar os campos do DBGrid atraves da colunas[/url]


Boa sorte!


Responder Citar

28/09/2004

Paulofrrz

Sandra, obrigado, funcionou legal. Dentro dos critérios existe um que é ´MÊS´, se eu precisar que dentro da ordem ´MÊS´ haja outra pelo campo ´NOME´, é possível?


Responder Citar

29/09/2004

Sandra

:roll: Deixa eu ver se entendi. Quando o critério é ´Mês´, você quer ordenar também pelo nome?

    2: SQL.Add(´Order by month(:DataCad), nome´); 
  end; 
  Parameters.ParamByName(´SeuParam´).Value (se houver) := <qualquercoisa1>; 
  Parameters.ParamByName(´DataCad´).Date (ou DateTime) := <qualquercoisa2>; 
  Open; 
end;


:oops: Não sei se entendi corretamente (também não testei). Veja se é assim.


Responder Citar

29/09/2004

Paulofrrz

Sandra, agora a ordem que me dá é só a por nome. O que eu precisava e ter uma ordem dentro da outra, ou seja, primeiro ordenar pelo campo mês, e dentro ordenar o campo nome..


Responder Citar