Refresh da consulta ao Banco
Moderador: Moderadores
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34
Refresh da consulta ao Banco
Amigos,
Como é que se pode fazer um "Refresh" de uma consulta feita no Banco? A idéia é não ter que fazer a consulta novamente pra não cair a performance. Pra quem conhece Delphi, o TQuery tem essa funcionalidade.
Enfim, isso é possível com as interfaces pra SGDB do xHarbour? Estou usando a SQL LIB e pra variar não funciona.
Abraço a todos.
Como é que se pode fazer um "Refresh" de uma consulta feita no Banco? A idéia é não ter que fazer a consulta novamente pra não cair a performance. Pra quem conhece Delphi, o TQuery tem essa funcionalidade.
Enfim, isso é possível com as interfaces pra SGDB do xHarbour? Estou usando a SQL LIB e pra variar não funciona.
Abraço a todos.
Lucio Faria
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Tente o seguinte:
cSql := "requery"
SQLLIB_ExecSQL( nConn, cSql )
Tente o seguinte:
cSql := "requery"
SQLLIB_ExecSQL( nConn, cSql )
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Falha minha, ando mechendo muito com minha biblioteca e confundi procedimentos.
Mas ainda assim, como não conheço a SQL-LIB, não existe nela nenhuma função REFRESH() ou um meio de enviar um comando refresh via sqllib_exec()?
Falha minha, ando mechendo muito com minha biblioteca e confundi procedimentos.
Mas ainda assim, como não conheço a SQL-LIB, não existe nela nenhuma função REFRESH() ou um meio de enviar um comando refresh via sqllib_exec()?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34
Re: Refresh da consulta ao Banco
Olá Lucio!
A SQLREFRESH() atualiza apenas uma consulta aberta com o comando USE normal.
* Se você abriu a tabela com o comando USE normal, ela atualizará o cache atual da CPU com os dados atuais do banco.
* Se você utilizou o USE SQL para puxar os resultados de uma QUERY no BANCO, precisará fechar a mesma e efetuar a consulta novamente, pois ela não foi feita para esta finalidade.
Porém o USE SQL foi desenvolvido para ser o mais àgil possível no processo de extrair os dados do servidor para a estação - então se você estiver usando um SQL bem montado com uso de índices e com uma clausula LIMIT para puxar apenas os registros necessários você não irá comprometer a performance do banco mesmo se estiver usando SQLArray() ou USE SQL.
Espero ter esclarecido sua dúvida, qqer coisa posta msg aqui para nós!
Eu havia respondido isto para você na msg em private que você me passou sobre esta questão, mas vamos la de novo com mais algumas informações adicionais:Lucio Faria escreveu:Como é que se pode fazer um "Refresh" de uma consulta feita no Banco? A idéia é não ter que fazer a consulta novamente pra não cair a performance.
....
Enfim, isso é possível com as interfaces pra SGDB do xHarbour? Estou usando a SQL LIB e pra variar não funciona.
A SQLREFRESH() atualiza apenas uma consulta aberta com o comando USE normal.
* Se você abriu a tabela com o comando USE normal, ela atualizará o cache atual da CPU com os dados atuais do banco.
* Se você utilizou o USE SQL para puxar os resultados de uma QUERY no BANCO, precisará fechar a mesma e efetuar a consulta novamente, pois ela não foi feita para esta finalidade.
Porém o USE SQL foi desenvolvido para ser o mais àgil possível no processo de extrair os dados do servidor para a estação - então se você estiver usando um SQL bem montado com uso de índices e com uma clausula LIMIT para puxar apenas os registros necessários você não irá comprometer a performance do banco mesmo se estiver usando SQLArray() ou USE SQL.
Espero ter esclarecido sua dúvida, qqer coisa posta msg aqui para nós!
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34
Re: Refresh da consulta ao Banco
Pra mim mesmo não, você deve estar confundindo com outra pessoa.vailton escreveu:Olá Lucio!
Eu havia respondido isto para você na msg em private que você me passou sobre esta questão
De qualquer forma, obrigado Vailton pelos esclarecimentos e por se disponibilizar a ajudar. É possível que surjam outras dúvidas uma vez que eu estou testando a SQL LIB.
Abração.
Lucio Faria
Caro Lúcio!
Eu passei por um problema semelhante e a ÚNICA solução que encontrei, após vários testes sem muito resultado, foi fechar o ALIAS atual e reenviar a instrução SQL para o mesmo alias.
Ou seja, infelizmente.... precisei REFAZER a query novamente!!! Absurdo! Mas foi a única solução até então.
Volto a perguntar: Será bug na versão DEMO da SQLLIB? Pois minha empres está cogitando a compra dela, mas precisamos de uma BASE SOLIDA para a comprovação de custo/benefício ideal!
Qualquer coisa Lúcio, pode falar comigo... acredito estarmos passando pelos mesmos problemas com a SQLLIB!
Cordialmente.
Eu passei por um problema semelhante e a ÚNICA solução que encontrei, após vários testes sem muito resultado, foi fechar o ALIAS atual e reenviar a instrução SQL para o mesmo alias.
Ou seja, infelizmente.... precisei REFAZER a query novamente!!! Absurdo! Mas foi a única solução até então.
Volto a perguntar: Será bug na versão DEMO da SQLLIB? Pois minha empres está cogitando a compra dela, mas precisamos de uma BASE SOLIDA para a comprovação de custo/benefício ideal!
Qualquer coisa Lúcio, pode falar comigo... acredito estarmos passando pelos mesmos problemas com a SQLLIB!
Cordialmente.
Júlio César M. Ferreira
Diretor de Tecnologia
RS Consultores Ltda.
Fone: (81) 4009.5444
Fax: (81) 4009.5400
E-mail: julio.mferreira@gmail.com
MSN: julio_mferreira@hotmail.com
Recife - PE
FWh 2.5, xHarbour 0.99.51, SQL LIB, Pelles 4.50.113
Diretor de Tecnologia
RS Consultores Ltda.
Fone: (81) 4009.5444
Fax: (81) 4009.5400
E-mail: julio.mferreira@gmail.com
MSN: julio_mferreira@hotmail.com
Recife - PE
FWh 2.5, xHarbour 0.99.51, SQL LIB, Pelles 4.50.113
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34
Olá jc,
ótimo saber que tem mais gente testando a SQL LIB! O meu caso é exatamente esse, estou testando primeiro antes de me decidir pela compra da ferramenta, que parece boa, então acho que poderemos trocar experiências por aqui.
Com relação ao refresh, como esse tipo de query é tipicamente para "carregar" um "grid" (Listbox), deve gerar um result set pequeno, e pode ser razoável re-enviar a query mesmo. Mas ainda tenho que testar isso.
Percebi que você relatou um erro da SQL LIB em outro tópico: minha preocupação é essa também, será que é limitação da versão demo?
Acho que o Vailton pode esclarecer, vamos aguardar.
Abração.
ótimo saber que tem mais gente testando a SQL LIB! O meu caso é exatamente esse, estou testando primeiro antes de me decidir pela compra da ferramenta, que parece boa, então acho que poderemos trocar experiências por aqui.
Com relação ao refresh, como esse tipo de query é tipicamente para "carregar" um "grid" (Listbox), deve gerar um result set pequeno, e pode ser razoável re-enviar a query mesmo. Mas ainda tenho que testar isso.
Percebi que você relatou um erro da SQL LIB em outro tópico: minha preocupação é essa também, será que é limitação da versão demo?
Acho que o Vailton pode esclarecer, vamos aguardar.
Abração.
Lucio Faria
É exatamente disto que estou falando... usar o USE SQL para puxar apenas oq precisa. Também pode-se usar Lucio a SQLArray() para jogar os dados dentro de uma matriz, é bem prático!Lucio Faria escreveu:Com relação ao refresh, como esse tipo de query é tipicamente para "carregar" um "grid" (Listbox), deve gerar um result set pequeno, e pode ser razoável re-enviar a query mesmo. Mas ainda tenho que testar isso.
E sobre o detalhe exposto pelo Júlio estou acompanhando de perto para vermos oq está ocorrendo.
-
Lucio Faria
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 04 Dez 2006 11:34

