GARANTIR DESCONTO

Fórum Reconectando com o ADOConnection #517059

16/04/2015

0

Ola pessoal,

Estou tentando fazer uma coisa que considero bem simples, mas ainda não consegui.
Bom tenho um cliente que utiliza uma conexão remota via VPN, na minha aplicação utilizo o ADOConnection, o problema é o seguinte, por vezes a conexão VPN cai e retorna após alguns segundos.
Gostaria que o sistema verificasse se a conexão esta ativa e se reconectasse sem apresentar falhas.
Fiz o seguinte teste :
1 - Criei um botão num form com a codificação logo abaixo
2- Executei o programa e cliquei no botão e ele conecta beleza sem problemas.
3 - Dei um STOP no Servidor e depois um START ( pra simular a queda da rede ou VPN )
4 - Clico novamente no botão e apresenta o seguinte erro :Cannot ope database "teste" requested by the login. Login failed
5 - Se eu fecho o programa e clico em conectar fica tudo beleza.


Codigo do botão :

procedure TForm1.Button1Click(Sender: TObject);
var
lstrConexao :Ansistring;
begin
try
lstrConexao := 'Provider=SQLOLEDB.1;Password= senha';
lstrConexao := lstrConexao + ';Persist Security Info=True;User ID= adm';
lstrConexao := lstrConexao + ';Initial Catalog= teste';
lstrConexao := lstrConexao + ';Data Source= analista01-pc';
AdoConn.Close;
AdoConn.ConnectionString:= lstrConexao;
AdoConn.Connected := True;
ShowMessage('Conexão OK.');
except
on E:Exception do begin
ShowMessage('falha ao conectar. ' + E.Message);
end;
end;
end;
Pa Informatica

Pa Informatica

Responder

Posts

17/04/2015

Leonardo Xavier

coloca um PING para o ip do seu servidor dentro de uma thread a cada 1 segundo ele faz a verificação se esta tudo ok com sua conexão ao banco de dados. caso de algum erro de ping ai seu sistema trata este evento de forma separada ao resto.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar