Fórum Apresentar em um GRID em ordem Decrescente #418771
20/06/2012
0
Vou dar uma dica para você que está quebrando a cabeça para
fazer os registro serem apresentados em ordem decrescente na GRID.
Faça o seguinte.
Quem trabalha com SqlQuery, DataSetProvider e ClientDataSet e DataSouce
eu acostumei colocar esses apelidos neles.
SqlQuery = Qry
DataSetProvider = Dsp
ClientDataSet = Cds
DataSouce = Dts
no caso vc tem uma Qry, Dsp,Cds e um Dts para inserir dados! correto!.
então faça o seguinte crie mais uma Qry,Dsp,Cds e um Dts para pesquisar.
Na propriedade SQL da Qry, insira uma select parecida com essa.
select * from TABELA_DO_BANCO
order by CAMPO_COLUNA_DESEJADA descending
pronto agora ligue na o Dts da pesquisa no Grid desejado.
o comando ORDER BY pode ter muita utilidade! ele ordena por nome por data por codigo...
enfim é ótimo para situações como essa.
para atualizar toda hora que tiver novos registro faça o seguinte.
Existe outras formas de gravar no banco, eu conheço essa.
comando de gravar
// Gravar no BANCO de Dados
with DataSet as TclientDataSet do
ApplyUpdates(0);
//fechar o Cds e abrir
CdsPesquisa.Active:=False;
CdsPesquisa.Active:=True;
No meu caso eu gravo no banco de dados pelo Cds no evento
AfterPost e AfterDelete
Então nesse mesmo evento abaixo do codigo de gravação faça o seguinte
feche e abra o cds de pesquisa.
pronto.
ok galera
Qualquer coisa estamos por ai..
flw.
Anderson Lopes
Curtir tópico
+ 0Posts
20/06/2012
Marco Salles
isto . Utilizando os componentes citados por vc . O ClientDataSet cria Indices em memória sendo desnecessário Sql (ordeyBy)para ordenar
Alem disso ao dar um applyUpdates nos eventos que vc se refere é uma prática que pode ser contestada
Vc perde algo que o ClientdataSet permite é de Aplicar todas as Modificaçoes(Inserções/Deletar) em um bloco só
e não um Por vez . Esta prática depende da Arquitura e do Planejamento e não deve ser regra
Além disso vc utiliza RTTI desnecessariamente ao fazer
// Gravar no BANCO de Dados
with DataSet as TclientDataSet do
ApplyUpdates(0);
Se o Objeto é clientdataset pq utilizar o operador As ??? Este Typecast nesta situações e desnecessaria
Se Voce tem certeza do tipo de objeto é recomendado fazer
TClientDataSet(DataSet).ApplyUpdates(0); // mais simples , eficiente e mais rápido
[]sds
Gostei + 0
20/06/2012
Anderson Lopes
isto . utilizando os componentes citados por vc . o clientdataset cria indices em memória sendo desnecessário sql (ordeyby)para ordenar
alem disso ao dar um applyupdates nos eventos que vc se refere é uma prática que pode ser contestada
vc perde algo que o clientdataset permite é de aplicar todas as modificaçoes(inserções/deletar) em um bloco só
e não um por vez . esta prática depende da arquitura e do planejamento e não deve ser regra
além disso vc utiliza rtti desnecessariamente ao fazer
// gravar no banco de dados
with dataset as tclientdataset do
applyupdates(0);
se o objeto é clientdataset pq utilizar o operador as ??? este typecast nesta situações e desnecessaria
se voce tem certeza do tipo de objeto é recomendado fazer
tclientdataset(dataset).applyupdates(0); // mais simples , eficiente e mais rápido
[]sds
Muito Obrigado pelas Dicas Marco Antonio.
Gostei + 0
20/06/2012
Marco Salles
se vc tiver dúvida o que é normal de uma pesquisada e qualquer coisa volte a postar
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)