Array
(
)

Alterar Ordem no DBGrid

Paulofrrz
   - 27 set 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?


Sandra
   - 27 set 2004

Paulo,

Tente algo parecido com:

#Código

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!


Paulofrrz
   - 28 set 2004

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?


Sandra
   - 29 set 2004

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

#Código

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.


Paulofrrz
   - 29 set 2004

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..