Fórum falha na conexão com o FB #332312

30/10/2006

0

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

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

Crcam

Responder

Posts

30/10/2006

Martins

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?


Responder

Gostei + 0

30/10/2006

Crcam

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


Responder

Gostei + 0

30/10/2006

Crcam

e ai pessoal alguma ideia??????


Responder

Gostei + 0

31/10/2006

Martins

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; 



Responder

Gostei + 0

31/10/2006

Crcam

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


Responder

Gostei + 0

31/10/2006

Martins

Olá Campos!!!

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:


Responder

Gostei + 0

31/10/2006

Martins

Campos desconsidere o segundo código, pois ele é uma bagunça das tags.

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:


Responder

Gostei + 0

31/10/2006

Crcam

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:

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..........


Responder

Gostei + 0

01/11/2006

Martins

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!


Responder

Gostei + 0

01/11/2006

Crcam

vou refazer a bateria de testes e fazer fora do compilador me da um tempo já implemento novamente


Responder

Gostei + 0

01/11/2006

Martins

vou refazer a bateria de testes e fazer fora do compilador me da um tempo já implemento novamente


tranquilo Campos!


Responder

Gostei + 0

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

Aceitar