Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

levito

order by campo & order by campo desc

Recommended Posts

Olá, estou desenvolvendo uma telinha que lista os valores de uma tabela SQL

eu que quando a pessoa clica-se no titulo ele ordena-se a tabela (1, 2, 3, ...)

com o seguinte comando:

 

procedure TFMUsuarios.dbgUsuariosTitleClick(Column: TColumn);

var

campo :string;

begin

campo:= column.fieldname; // CAMPO RECEBE O NOME DA COLUNA CLICADA,

application.processmessages; // para considerar algo que aconteça no dbgrid durante a entrada nesta procedure

zqUsuarios.sql.clear; // LIMPA A QUERY

zqUsuarios.sql.add('select * from Funcionarios order by '+campo);

zqUsuarios.Open; // ABRE A QUERY COM A ORDEM ESCOLHIDA

end;

 

dbgUsuarios é o meu TDBGrid

zqUsuarios é o meu TZQuery

 

BOm desta forma ele ordena do jeito que falei, mas eu quero que quando eu clicar novamente ele ordene ao contrario (3, 2, 1)

e não sei como fazer

 

Por Favor me deem uma LUZ.

 

:) Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode por alguma flag para controlar isso (na tela ou interna, como uma variável no private do form) do tipo booleano... ai, se for true por exemplo, ordena por ordem crescente, se for false, ordena de forma decrescente... ai seria só por algo do tipo:

 

IF Flag then
	zqUsuarios.sql.add('select * from Funcionarios order by '+campo + ' asc')
else
	zqUsuarios.sql.add('select * from Funcionarios order by '+campo + ' desc');

De resto, só teria que ver em que momento atualizaria a flag... se for a cada chamada desta mesma procedure, poderia por antes do if um Flag := not Flag;

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.