falha na conexão com o FB
pessoal estou querendo fazer sistema onde o banco FB é remoto caso o banco esteja off ele não de mensages de erro ele somente gere um log ou grave no banco local a data e hora que o sistema esteve fora e tente conectar num tempo pré determinado.
alguem sabe como posso chegar proximo disso estava tentando usar try mas não deu certo
alguem sabe como posso chegar proximo disso estava tentando usar try mas não deu certo
procedure TForm1.FormCreate(Sender: TObject); begin try // TRATAMENTO ALIAS ADOConnection1.Connected:=false; ADOConnection1.ConnectionString:=(´Provider=IBOLE.Provider.v4;Persist Security Info=False;Data Source=localhost:D:\BDTeste\BD.fdb´); ADOConnection1.Connected:= true; ADOQuery1.Open; // FIM TRATAMENTO ALIAS except //aqui c ocorrer erros //aqui c ocorrer erros end end;
Crcam
Curtidas 0
Respostas
Martins
30/10/2006
pessoal estou querendo fazer sistema onde o banco FB é remoto caso o banco esteja off ele não de mensages de erro ele somente gere um log ou grave no banco local a data e hora que o sistema esteve fora e tente conectar num tempo pré determinado.
alguem sabe como posso chegar proximo disso estava tentando usar try mas não deu certo
[code]
procedure TForm1.FormCreate(Sender: TObject);
begin
try
// TRATAMENTO ALIAS
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:=(´Provider=IBOLE.Provider.v4;Persist Security Info=False;Data Source=localhost:D:\BDTeste\BD.fdb´);
ADOConnection1.Connected:= true;
ADOQuery1.Opuem sabe como posso chegar proximo disso estava tentando usar try mas não deu certo
[code]
procedure TForm1.FormCreate(Sender: TObject);
begin
try
// TRATAMENTO ALIAS
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:=(´Provider=IBOLE.Provider.v4;Persist Security Info=False;Data Source=localhost:D:\BDTeste\BD.fdb´);
ADOConnection1.Connected:= true;
ADOQuery1.Open;
// FIM TRATAMENTO ALIAS
except
//aqui c ocorrer erros
//aqui c ocorrer erros
end
end;
[/code]
vc deseja direcionar as mensagens de erro para um arquivo de LOG e depois de um determinado tempo tipo 30 segundos tentar novamente a conexão?
GOSTEI 0
Crcam
30/10/2006
isso! não quero que o usuario interaja com nada quero que meu sistema se vire sozinho até pensei de criar uma rotina de depois de N tentaviva ele mandar um e-mail p/ o responsavel do sistema
a e também verificar se o banco está off pois o provedor caiu ou a estação está sem internet
a e também verificar se o banco está off pois o provedor caiu ou a estação está sem internet
GOSTEI 0
Crcam
30/10/2006
e ai pessoal alguma ideia??????
GOSTEI 0
Martins
30/10/2006
procedure TForm1.FormCreate(Sender: TObject);
begin
try
TRATAMENTO ALIAS
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:=(´Provider=IBOLE.Provider.v4;Persist Security Info=False;Data Source=localhost:D:\BDTeste\BD.fdb´);
ADOConnection1.Connected:= true;
ADOQuery1.Open;
FIM TRATAMENTO ALIAS
except
aqui c ocorrer erros
on E : Exception do
begin
MessageDlg(´Erro ao tentar conectar no servidor!
´Mensagem original: ´ E.Message, mtError, [mbOk], 0);
{...Inseri informações no seu arquivo LOG}
end;
aqui c ocorrer erros
end
ADOQuery1.Open;
FIM TRATAMENTO ALIAS
except
aqui c ocorrer erros
on E : Exception do
begin
MessageDlg(´Erro ao tentar conectar no servidor!´ + #13 +
´Mensagem original: ´ + E.Message, mtError, [mbOk], 0);
{...Inseri informações no seu arquivo LOG}
end;
//aqui c ocorrer erros
end
end; GOSTEI 0
Crcam
30/10/2006
não testei ainda mas pelo que vejo ele retorna msg de erro correto?
mas a questão é como não retornar mensagem alguma de falha a ação que quero disparar é oculta so o sistema sabera o usuario não verá msg de qualquer especie
mas a questão é como não retornar mensagem alguma de falha a ação que quero disparar é oculta so o sistema sabera o usuario não verá msg de qualquer especie
GOSTEI 0
Martins
30/10/2006
Olá Campos!!!
Meu nobre amigo, estou sem MSN, fiz um teste aqui bem rápido e vc poderá melhorar, espero q lhe seja útil.
vc vai poder melhorar, dê uma olhada e qualquer coisa retorne aqui.
Boa sorte! :wink:
Meu nobre amigo, estou sem MSN, fiz um teste aqui bem rápido e vc poderá melhorar, espero q lhe seja útil.
//Procedure q cria o arquivo de LOG. procedure TForm1.CriaLog(Nome, Informacao: String); var log: textfile; begin try AssignFile(log, Nome); if not FileExists(Nome) then Rewrite(log, Nome); Append(log); WriteLn(log, Informacao); finally CloseFile(log); end; end;
begin try // TRATAMENTO ALIAS ADOConnection1.Connected:=false; ADOConnection1.ConnectionString:=(´Provider=IBOLE.Provider.v4;Persist Security Info=False;Data Source=localhost:D:\BDTeste\BD.fdb´); ADOConnection1.Conthen Rewrite(log, Nome); Append(log); WriteLn(log, Informacao); finally CloseFile(log); end; end;
begin try // TRATAMENTO ALIAS ADOConnection1.Connected:=false; ADOConnection1.ConnectionString:=(´Provider=IBOLE.Provider.v4;Persist Security Info=False;Data Source=localhost:D:\BDTeste\BD.fdb´); ADOConnection1.Connected:= true; ADOQuery1.Open; // FIM TRATAMENTO ALIAS CriaLog(´D:\Cd\Conexao.Log´, ´Conexão efetuada com sucesso em: ´+DateToStr(Now)+´ às ´+TimeToStr(Now)); except on E: Exception do begin CriaLog(´D:\Cd\Conexao.Log´, ´Erro ao tentar conectar com o servidor em: ´+DateToStr(Now)+´ às ´+TimeToStr(Now)); CriaLog(´D:\Cd\Conexao.Log¬2nected:= true; ADOQuery1.Open; // FIM TRATAMENTO ALIAS CriaLog(´D:\Cd\Conexao.Log´, ´Conexão efetuada com sucesso em: ´+DateToStr(Now)+´ às ´+TimeToStr(Now)); except on E: Exception do begin CriaLog(´D:\Cd\Conexao.Log´, ´Erro ao tentar conectar com o servidor em: ´+DateToStr(Now)+´ às ´+TimeToStr(Now)); CriaLog(´D:\Cd\Conexao.Log´, E.Message +´ em: ´ +DateToStr(Now)+´ às ´+TimeToStr(Now)); end; end; end;
vc vai poder melhorar, dê uma olhada e qualquer coisa retorne aqui.
Boa sorte! :wink:
GOSTEI 0
Martins
30/10/2006
Campos desconsidere o segundo código, pois ele é uma bagunça das tags.
veja o exemplo do arquivo de Log.
boa sorte :wink:
veja o exemplo do arquivo de Log.
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:43:57
unavailable database em: 31/10/2006 às 11:43:57
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:44:03
unavailable database em: 31/10/2006 às 11:44:03
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:44:11
unavailable database em: 31/10/2006 às 11:44:11
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:52
unavailable data tentar conectar com o servidor em: 31/10/2006 às 11:43:57
unavailable database em: 31/10/2006 às 11:43:57
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:44:03
unavailable database em: 31/10/2006 às 11:44:03
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:44:11
unavailable database em: 31/10/2006 às 11:44:11
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:52
unavailable database em: 31/10/2006 às 11:46:52
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:53
unavailable database em: 31/10/2006 às 11:46:53
Erro ao tentar conectar com o servidor em: 31/10/2006 àF2006 às 11:44:03
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:44:11
unavailable database em: 31/10/2006 às 11:44:11
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:52
unavailable database em: 31/10/2006 às 11:46:52
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:53
unavailable database em: 31/10/2006 às 11:46:53
Erro ao tentar conectar com o servidor em: 31/10/2006 àF2006 às 11:44:03
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:44:11
unavailable database em: 31/10/2006 às 11:44:11
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:52
unavailable database em: 31/10/2006 às 11:46:52
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:53
unavailable database em: 31/10/2006 às 11:46:53
Erro ao tentar conectar com o servidor em: 31/10/2006 às 11:46:54
unavailable database em: 31/10/2006 às 11:46:54
Conexão efetuada com sucesso em: 31/10/2006 às 11:47:05
Conexão efetuada com sucesso em: 31/10/2006 às 11:47:14
boa sorte :wink:
GOSTEI 0
Crcam
30/10/2006
Martins para que vc entende melhor meu dilema faça o seguinte crie um form simple com um ou dois campos crie um banco usando FB compativel
digamso que vc no alias coloque:
certo ligue o sistema e veja se o banco ligou ! se ok agora faça o seguinte:
remova o banco do local ou coloque um alias apontando p/ um banco enixistente
agora execute seu form veja que ele vai dar uma msg de sistema correto ?
pois é essa msg que eu quero inibir..........
digamso que vc no alias coloque:
localhost:D:\BDTeste\BD.fdb
certo ligue o sistema e veja se o banco ligou ! se ok agora faça o seguinte:
remova o banco do local ou coloque um alias apontando p/ um banco enixistente
localhost:w:\sembanco\
agora execute seu form veja que ele vai dar uma msg de sistema correto ?
pois é essa msg que eu quero inibir..........
GOSTEI 0
Martins
30/10/2006
CAMPOS!
Fiz todos os testes e a mensagem de erro foi direcionada para o arquivo LOG, as únicas vezes em q ela me foi apresentada foi ao executar pelo RUN do Delphi, tente compilar sua aplicação e rodar ela por fora do Delphi.
Eu estou usando Delphi 6. Aqui funcionou normalmente, pois perceba q a saída está apontada para o arquivo LOG, mas e vc fizer o teste executando por dentro do Delphi vai receber uma exceção gerada por está com a IDE Delphi aberta.
Bos sorte!
Fiz todos os testes e a mensagem de erro foi direcionada para o arquivo LOG, as únicas vezes em q ela me foi apresentada foi ao executar pelo RUN do Delphi, tente compilar sua aplicação e rodar ela por fora do Delphi.
Eu estou usando Delphi 6. Aqui funcionou normalmente, pois perceba q a saída está apontada para o arquivo LOG, mas e vc fizer o teste executando por dentro do Delphi vai receber uma exceção gerada por está com a IDE Delphi aberta.
Bos sorte!
GOSTEI 0
Crcam
30/10/2006
vou refazer a bateria de testes e fazer fora do compilador me da um tempo já implemento novamente
GOSTEI 0
Martins
30/10/2006
vou refazer a bateria de testes e fazer fora do compilador me da um tempo já implemento novamente
tranquilo Campos!
GOSTEI 0