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;
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
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)