ADODB: TESTAR CONEXAO CAIU
Alguém sabe uma forma fácil de testar se a conexão do banco caiu?
Existe o State mas ali é pra saber se está aberto ou fechado não verifica se caiu ou não
Att
Lucas
Existe o State mas ali é pra saber se está aberto ou fechado não verifica se caiu ou não
Att
Lucas
Colega o banco está na rede?
Banco local ou na Rede é um Banco MySQL
Digamos abri o software com banco conectado, normal, mas por algum motivo caiu a rede, então antes de disparar um comando que vai retornar erro queria testar ver se está comunicando o banco de dados entendeu.
Digamos abri o software com banco conectado, normal, mas por algum motivo caiu a rede, então antes de disparar um comando que vai retornar erro queria testar ver se está comunicando o banco de dados entendeu.
Somente ao tentar conectar / executar uma consulta / comando é que você [Ô]descobre[Ô] se a conexão está ou não válida.
Há sim, formas de validar o estado de um dado socket, de uma URL de uma porta, mas como a aplicação já possui um conector, o mais prático é usá-lo para este teste, ao invés de criar e chamar outras rotinas com esse fim.
Mesmo em VB6 / VBA, se em sua aplicação você encapsular todos os comandos de acesso á base de dados (incluindo o conector) em uma classe (similar á uma DAL), pode mapear um evento [Ô]ConexãoPerdida[Ô] e assim apresentar uma mensagem mais adequada do que um [Ô] Run-time error [ô]-2147217871 (80040e31)[ô]: [Ô] ou coisas do gênero.
Observação: Não caia na tentação de efetuar um teste periódico de conexão (á cada [Ô]n[Ô] segundos, por exemplo). Isso, além de não resolver, ainda acarreta um [Ô]peso[Ô] adicional cumulativo ao aplicativo, caso a instância do conector não seja encerrada e destruÃda da forma adequada (ou seja, neste caso, além de chamar o método .Close, esvaziar a variável de conexão como em Set conector = Nothing e repetir o processo para cada objeto derivado - tais como os Recordset, Relation etc).
Há sim, formas de validar o estado de um dado socket, de uma URL de uma porta, mas como a aplicação já possui um conector, o mais prático é usá-lo para este teste, ao invés de criar e chamar outras rotinas com esse fim.
Mesmo em VB6 / VBA, se em sua aplicação você encapsular todos os comandos de acesso á base de dados (incluindo o conector) em uma classe (similar á uma DAL), pode mapear um evento [Ô]ConexãoPerdida[Ô] e assim apresentar uma mensagem mais adequada do que um [Ô] Run-time error [ô]-2147217871 (80040e31)[ô]: [Ô] ou coisas do gênero.
Observação: Não caia na tentação de efetuar um teste periódico de conexão (á cada [Ô]n[Ô] segundos, por exemplo). Isso, além de não resolver, ainda acarreta um [Ô]peso[Ô] adicional cumulativo ao aplicativo, caso a instância do conector não seja encerrada e destruÃda da forma adequada (ou seja, neste caso, além de chamar o método .Close, esvaziar a variável de conexão como em Set conector = Nothing e repetir o processo para cada objeto derivado - tais como os Recordset, Relation etc).
Obrigado já tinha mais ou menos analisado que seria somente desta forma executando algum comando.
Agradeço sua atenção.
Lucas
Agradeço sua atenção.
Lucas
Faça seu login para responder