[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 * 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
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
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