Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maximum2003

On Error

Recommended Posts

Pessoal estou com um problema. Tenho uma página que possui refresh automático e a mesma faz conexão com meu banco de dados cada vez que é carregada. O problema é que minha conexão com o banco está com erros esporádicos de ODBC ("Too Many Conections"). Isso está fazendo com que minha página apresente erro e pare de dar refresh.Para isso tenho uma sub, a qual creio estar com algum erro pois a minha idéia é que a mesma só pare de ser executada no momento em que a conexão com o banco de dados seja efetuada.A sub é a seguinte:Sub pVerificarConexao (ByVal Recordset, ByVal vsQuery, ByVal Conection) On Error Resume Next Recordset.Open vsQuery, Conection, 1, 1 If Err.Number <> 0 Then Err.Clear pVerificarConexao Recordset, vsQuery, Conection End IfEnd SubÉ invocada assim:vsQuery = "SELECT CD_TESTE FROM TABELA_TESTES "pVerificarConexao Recordset, vsQuery, ConectionIf Not Recordset.EoF Then .....End IfRecordset.CloseO que está acontecendo é que é feita a tentativa de conexão com o banco um número determinado de vezes e após isso ele já cai no "If Not Recordset.EoF Then" e acusa que o objeto não está aberto.A minha idéia é que "ele" só passe para a próxima linha quando consegue conectar-se com o banco.Alguém pode me dar uma luz?????????????Obrigado!Gabriel Marques.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso realmente tem grandes chances de ser pelo excesso de conexões ao BD, você deve fechar sempre as conexões!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ta fechando e destruindo a conexão?

Nessa página eu fecho e mato os recordsets, porém eu trabalho com portais corporativos e dentro dessa página existem outras páginas que não matam os recordsets. Mas o foco do problema não é esse, tenho que apenas rodar uma Sub que é chamada até que a página dê um próximo refresh ou até que a conexão co o banco seja efetuada! Essa rotina servirá até mesmo para que a página não pare caso ocorra qualquer erro.Essa minha página, está em um frame de 1px. Ou seja, está oculta. Caso ela dê pane não haverá um modo de constatar isso visualmente, saca?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você abriu a conexão.Depois tem que fechar:Conection.CloseSet Conection=NothingMesmo que você mate o recordset a conexao vai ficar aberta em torno de20 minutos.Acho que o foco do problema é esse mesmo senão não dava:("Too Many Conections"). Se sua página dá refresh a cada 5 segundos em 20 minutos você tem mais de 240 conexões abertas.Juntando com as outras do portal que não matam os recordsets (e pelo jeito também não fecham as conexões...) vai dar pau mesmo.Isso é um erro primário de programação.É aconselhável revisar o aplicativo inteiro e fechar as conexoes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.