[delphi-br] Atualizando dados da GRID

2006-02-08 Por tôpico Gerson Thomaz Santos
Geleira


E ai lista...

lah vem eu de novo :D:D:D

seguinte agora a pergunta é bem chatinha e a solução também acho que será 
beeemmm pancada:

sistema:
Um controle de Temperaturas de ambientes.:
funcionamento:
Recebe valores de aproximadamente uns 150 sensores de temperatura:
Funcionamento para o Usuário:
Tem uma GRID onde são exibidos os seguintes campos que vem de uma tabela de 
entrada de dados:

SENSOR | TEMPERATURA |   ULTMA LEITURA   | STATUS
  0001 |480°C| 08/02/06 10:35:27 | Acima
  0002 |450°C| 08/02/06 10:35:39 | Normal
  0003 |380°C| 08/02/06 10:34:12 | Normal
  0004 |280°C| 08/02/06 10:36:01 | Abaixo

Continuando, quando o usuário clicar em uma linha do Grid eu atualizo um quadro 
de informações mais completas do Sensor, como Foto do local, Técnico 
responsável, etc, etc, etc...


Ai vem o lance:  a cada 10 segundos eu tenho que atualizar os valores dessa 
Grid e as vezes dah erro quando o kra clica na Grid bem na hora que eu vou dar 
o Close; Open; na Query dessa GRID.

o que faço:

timerAtualiza:


   sensor := tbTempSENSOR.value; //variavel sensor Global para armazenar o 
sensor q a GRID estava posicionada
   tbTemp.DisableControls;
   tbTemp.Close;
   tbTemp.Open;
   tbTemp.EnableControls;

   tbTemp.Locate('SENSOR', sensor, []);

Porém mesmo assim existem vezes que dah erros de Access Violation ou de 
Canot Performe this operation on a Closed Data Set.

Acho que entra um clique no meio desse processo que me ferra a vida.
Haa só pra lembrar, isso acontece de 10 em 10 segundos em um ambiente com 
aproximadamente 150 sensores.

Estou Usando:
Banco: MS-SQL Server
Acesso: ADOConection + ADOQuery
Versão do Delphi: 7


alguem ja teve algum projeto parecido ou alguem sabe uma maneira d fazer esse 
processo não dar erros??? ja pensei em 

usar 2 GRIDS com 2 Querys onde quando vou atualizar a GRID1, o kra fica usando 
a GRID2 e vice-e-versa...

enfim, a duvida tah no ar

Abraço a todos




Atenciosamente,
Gerson 

[As partes desta mensagem que não continham texto foram removidas]



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Atualizando dados da GRID

2006-02-08 Por tôpico Claudiney Cogo
Olá Gerson...

E se no seu timerAtualiza ao invés de usar todo esse código, fechar e abrir 
a query e fazer a busca novamente vc só fizesse um

tbTemp.Refresh;

já tentou? Ele atualizaria os dados da query sem fechar. Usei isto em alguns 
casos específicos aqui, não sei se seria a solução pro seu caso, mas não 
custa fazer o teste.

Abraço..
Claudiney.

- Original Message - 
From: Gerson Thomaz Santos [EMAIL PROTECTED]
To: Delhpi-BR delphi-br@yahoogrupos.com.br
Cc: [EMAIL PROTECTED]
Sent: Wednesday, February 08, 2006 11:28 AM
Subject: [delphi-br] Atualizando dados da GRID


Geleira


E ai lista...

lah vem eu de novo :D:D:D

seguinte agora a pergunta é bem chatinha e a solução também acho que será 
beeemmm pancada:

sistema:
Um controle de Temperaturas de ambientes.:
funcionamento:
Recebe valores de aproximadamente uns 150 sensores de temperatura:
Funcionamento para o Usuário:
Tem uma GRID onde são exibidos os seguintes campos que vem de uma tabela de 
entrada de dados:

SENSOR | TEMPERATURA |   ULTMA LEITURA   | STATUS
  0001 |480°C| 08/02/06 10:35:27 | Acima
  0002 |450°C| 08/02/06 10:35:39 | Normal
  0003 |380°C| 08/02/06 10:34:12 | Normal
  0004 |280°C| 08/02/06 10:36:01 | Abaixo

Continuando, quando o usuário clicar em uma linha do Grid eu atualizo um 
quadro de informações mais completas do Sensor, como Foto do local, Técnico 
responsável, etc, etc, etc...


Ai vem o lance:  a cada 10 segundos eu tenho que atualizar os valores dessa 
Grid e as vezes dah erro quando o kra clica na Grid bem na hora que eu vou 
dar o Close; Open; na Query dessa GRID.

o que faço:

timerAtualiza:


   sensor := tbTempSENSOR.value; //variavel sensor Global para armazenar o 
sensor q a GRID estava posicionada
   tbTemp.DisableControls;
   tbTemp.Close;
   tbTemp.Open;
   tbTemp.EnableControls;

   tbTemp.Locate('SENSOR', sensor, []);

Porém mesmo assim existem vezes que dah erros de Access Violation ou de 
Canot Performe this operation on a Closed Data Set.

Acho que entra um clique no meio desse processo que me ferra a vida.
Haa só pra lembrar, isso acontece de 10 em 10 segundos em um ambiente com 
aproximadamente 150 sensores.

Estou Usando:
Banco: MS-SQL Server
Acesso: ADOConection + ADOQuery
Versão do Delphi: 7


alguem ja teve algum projeto parecido ou alguem sabe uma maneira d fazer 
esse processo não dar erros??? ja pensei em

usar 2 GRIDS com 2 Querys onde quando vou atualizar a GRID1, o kra fica 
usando a GRID2 e vice-e-versa...

enfim, a duvida tah no ar

Abraço a todos




Atenciosamente,
Gerson

[As partes desta mensagem que não continham texto foram removidas]



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



Links do Yahoo! Grupos










-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Atualizando dados da GRID

2006-02-08 Por tôpico Gabriel Filho
Bom dia Gerson,

Ao invez de vc Usar um Close e depois um open, use um Requery, mas atenção o
Requery como o proprio nome diz faz uma Reconsulta, ou seja vc não pode
mudar nenhum parametro de sua string SQL, por a informação será enviada com
os mesmo parametros, e como o servidor vai saber que é uma Reconsulta a
atualização do grid será mais rápido, segue abaixo o exmplo:

   sensor := tbTempSENSOR.value;
   tbTemp.DisableControls;
   tbTemp.Requery;
   tbTemp.Locate('SENSOR', sensor, []);//Obs faça o locate antes de
habilitar os controle novamente, pois como estava fazendo era possível notar
a mudança para o registro correte;
   tbTemp.EnableControls;


Um abraço, e espero ter ajudado, gosto muito dos componentes ADO, na minha
opnião um dos melhores, tem muito recursos, caso precise de mais alguma
coisa pode perguntar, se eu souber estarei ajudando

Em 08/02/06, Claudiney Cogo [EMAIL PROTECTED] escreveu:

 Olá Gerson...

 E se no seu timerAtualiza ao invés de usar todo esse código, fechar e
 abrir
 a query e fazer a busca novamente vc só fizesse um

 tbTemp.Refresh;

 já tentou? Ele atualizaria os dados da query sem fechar. Usei isto em
 alguns
 casos específicos aqui, não sei se seria a solução pro seu caso, mas não
 custa fazer o teste.

 Abraço..
 Claudiney.

 - Original Message -
 From: Gerson Thomaz Santos [EMAIL PROTECTED]
 To: Delhpi-BR delphi-br@yahoogrupos.com.br
 Cc: [EMAIL PROTECTED]
 Sent: Wednesday, February 08, 2006 11:28 AM
 Subject: [delphi-br] Atualizando dados da GRID


 Geleira


 E ai lista...

 lah vem eu de novo :D:D:D

 seguinte agora a pergunta é bem chatinha e a solução também acho que será
 beeemmm pancada:

 sistema:
 Um controle de Temperaturas de ambientes.:
 funcionamento:
 Recebe valores de aproximadamente uns 150 sensores de temperatura:
 Funcionamento para o Usuário:
 Tem uma GRID onde são exibidos os seguintes campos que vem de uma tabela
 de
 entrada de dados:

 SENSOR | TEMPERATURA |   ULTMA LEITURA   | STATUS
   0001 |480°C| 08/02/06 10:35:27 | Acima
   0002 |450°C| 08/02/06 10:35:39 | Normal
   0003 |380°C| 08/02/06 10:34:12 | Normal
   0004 |280°C| 08/02/06 10:36:01 | Abaixo

 Continuando, quando o usuário clicar em uma linha do Grid eu atualizo um
 quadro de informações mais completas do Sensor, como Foto do local,
 Técnico
 responsável, etc, etc, etc...


 Ai vem o lance:  a cada 10 segundos eu tenho que atualizar os valores
 dessa
 Grid e as vezes dah erro quando o kra clica na Grid bem na hora que eu vou
 dar o Close; Open; na Query dessa GRID.

 o que faço:

 timerAtualiza:


sensor := tbTempSENSOR.value; //variavel sensor Global para armazenar o
 sensor q a GRID estava posicionada
tbTemp.DisableControls;
tbTemp.Close;
tbTemp.Open;
tbTemp.EnableControls;

tbTemp.Locate('SENSOR', sensor, []);

 Porém mesmo assim existem vezes que dah erros de Access Violation ou de
 Canot Performe this operation on a Closed Data Set.

 Acho que entra um clique no meio desse processo que me ferra a vida.
 Haa só pra lembrar, isso acontece de 10 em 10 segundos em um ambiente com
 aproximadamente 150 sensores.

 Estou Usando:
 Banco: MS-SQL Server
 Acesso: ADOConection + ADOQuery
 Versão do Delphi: 7


 alguem ja teve algum projeto parecido ou alguem sabe uma maneira d fazer
 esse processo não dar erros??? ja pensei em

 usar 2 GRIDS com 2 Querys onde quando vou atualizar a GRID1, o kra fica
 usando a GRID2 e vice-e-versa...

 enfim, a duvida tah no ar

 Abraço a todos




 Atenciosamente,
 Gerson

 [As partes desta mensagem que não continham texto foram removidas]



 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



 Links do Yahoo! Grupos










 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



 Links do Yahoo! Grupos










[As partes desta mensagem que não continham texto foram removidas]



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html