Atualizar ClientDataSet + IBQuery + DbGrid

Delphi

09/06/2014

boa noite!

utilizo Delphi 7.
palheta Interbase > IBQuery
palheta DataAccess > Datasource + ClientDataSet + DataSetProvider
palheta DataControls > DbGrid

* realizo a consulta SQL no IBquery
* carrego os registro no ClientDataSet
* exibo resultado no DBgrid

até ai tudo certo, fiz com ClientDataSet apenas para aparecer o Check box no Dbgrid pra ficar mais bonito.

O GRANDE problema está sendo mostrar os registros atualizados no DBgrid.
eu altero, excluo e insiro tudo no IBQuery atraves de SQL.

alguém pode me dar uma dica para eu parar de sofrer com isso?
aguardo
Barrys

Barrys

Curtidas 0

Respostas

Thiago Irrazabal

Thiago Irrazabal

09/06/2014

Opa, beleza? Não sei se entendi totalmente tua dúvida mas vamos lá, primeiro, esse teu IBQuery tem um SQL fixo de consulta nele? Ou tu muda o SQL com as informações de INSERÇÃO, ALTERAÇÃO E EXCLUSÃO? Se tu muda, eu faria diferente, teria um IBQuery + ClientDataSet + DataSetProvider exclusivo para a consulta que se manteria ligado a DBGrid, após feita as ALTERAÇÕES, EXCLUSÕES ou INSERÇÕES, eu daria close nele e open para atualizar os dados e pronto. Espero ter ajudado, abraço.



Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Barrys

Barrys

09/06/2014

boa tarde!

eu deixei exclusiva essa IBQuery + ClientDataSet + DataSetProvider para o DBGrid que estou exibindo na tela.
o problema é quando altero ou insiro alguma informação na tabela, nao está atualizando esse ClientDataSet.

por Ex: tenho uma tabela de produtos de 15.000 itens... carrego pela primeira vez (demora 40 segundos)... tudo certo.
mas quando o cliente de outra maquina atualiza algum produto, eu nao consigo atualizar essa consulta carregada na máquina do primeiro cliente.

eu só conseguiria, fechando o ClienteDataSet e carregando tudo de novo (40 seg. de espera)

imagina que, a cada 1 minuto é alterado algum produto.
o cliente nao pode ficar esperando essa consulta toda hora, eu preciso que a primeira consulta feita se atualize sem ter de carregar tudo novamente.

fico no aguardo por alguma ajuda
GOSTEI 0
POSTAR