Pessoal, estou desenvolvendo um projeto em Delphi 7 Enterprise, e estou 
montando um código pra ordenar a dbgrid pela coluna que o usuário clicar, estou 
usando um adoquery, e supondo que o conteúdo da sql seja: SELECT * FROM 
PRODUTOS.
Nao retorna erro algum, só que a dbgrid fica vazia, não aparece nada, já dei um 
showmessage na propriedade sql do adoquery pra ver se estava montando a 
consulta corretamente, e está, mas não está retornando nenhum resultado.

Dá uma olhada no código, é simples, não é muito prático, mas eu fiz dessa 
maneira, por ser mais simples, não preciso de muitas validações!



o código é o seguinte:

procedure Tfrmconsproduto.DBGrid1TitleClick(Column: TColumn);
  var
    campo:string;
    cons:string;
begin
  cons:=qconsulta.sql.Text;//recebe o sql do adoquery, da consulta feita
  campo:=column.fieldname; // CAMPO RECEBE O NOME DA COLUNA CLICADA,
  application.processmessages; // para considerar algo que aconteça no dbgrid
  qconsulta.sql.clear; // LIMPA A QUERY
  qconsulta.sql.add(cons+' order by '+campo); // ESCREVE O SELECT COM O ORDER BY
  qconsulta.open; // ABRE A QUERY COM A ORDEM ESCOLHIDA.
  lblordenado.caption:='Classificado por : [ '+Column.Title.Caption+' 
]';//escreve na label por qual coluna foi ordenado
  qconsulta.SQL.text:=cons;//Retorna pro sql a consulta sem o order by
end;



o que pode ser???


Abraços galera

Responder a