Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Tratamento de erros.


Mario Henrique

Pergunta

E ai, pessoal!

Estou montando uma Unit com o objetivo de tratar todas as mensagens de erros das minhas Aplicações.

A principio estou tratando os erros referentes a Banco de dados, no caso, Firebird!

Vamos lá: alguém já conseguiu encontrar a maioria (ou as "principais/objetivas") das possíveis mensagens de erros de Banco de dados que posso obter na minha Aplicação?

Assim, podemos criar uma Unit, ir melhorando e disponibilizar aqui no Fórum para todos os interessados!

Grato pela atenção!

Editado por Mario Henrique
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Caro Jhonas,

Obrigado pela lista de código de erros.

Ajudou e muito!

Aproveitando do seu conhecimento, trabalhando com TClientDataSet->TDataSetProvider->TSQLQuery,

existe algum meio de eu pegar o "código do erro" como está descrito na lista que você me passou?

Eu estou tratando tudo pelo E.Message (nos eventos OnPostError e OnReconcileError), mas nunca

pensei em pegar por código e tal... Tem jeito?

Abraço!

Editado por Mario Henrique
Link para o comentário
Compartilhar em outros sites

  • 0
Aproveitando do seu conhecimento, trabalhando com TClientDataSet->TDataSetProvider->TSQLQuery,

existe algum meio de eu pegar o "código do erro" como está descrito na lista que você me passou?

Eu estou tratando tudo pelo E.Message (nos eventos OnPostError e OnReconcileError), mas nunca

pensei em pegar por código e tal... Tem jeito?

Veja esse exemplo:

var 
config:TIniFile; 
caminho,ip_servidor:string; 
E:integer; 
begin 
try 
  config := TInifile.Create('C:\PROJETO\DADOS\CONFIG.CFG'); // cria um objeto para manipular o arquivo ini 
  caminho:=config.ReadString('CONFIGURACAO DA BASE', 'BASE_DE_DADOS', ''); // PEGA O CAMINHO DA BASE 
  ip_servidor:=config.ReadString('CONFIGURACAO DA BASE','IP_SERVIDOR',''); // PEGA O IP DO SERVICOR 
  BDtbsMain.DatabaseName:=ip_servidor+':'+caminho; 
  BDtbsMain.LoginPrompt:=false; // Desabilita o prompop de login 
  config.Free; // apaga o objeto da memória 
  BDtbsMain.Connected:=true; 
  except 
        on E:EIBInterbaseError do 
          begin 
          if ( EIBInterBaseError(E).IBErrorCode = 335544344 ) then 
                begin 
                ShowMessage('Arquivo de dados não localizado '+caminho+'.Verifique se o caminho está correto'); 
                Application.Terminate; 
                end; 

          if ( EIBInterBaseError(E).IBErrorCode = 335544472 ) then 
                begin 
                ShowMessage('Nome de usuário e senha incorretos. Contate o Adminstrador do servidor Firebird'); 
                Application.Terminate; 
                end; 

          if ( EIBInterBaseError(E).IBErrorCode = 335544753 ) then 
                begin 
                ShowMessage('O nome de usuário especificado não foi encontrado no banco de dados de segurança'); 
                Application.Terminate; 
                end; 

          if ( EIBInterBaseError(E).IBErrorCode = 335544721 ) then 
                begin 
                ShowMessage('Falha ao conectar com servidor Firebird. Verifique se o servidor está ativo'); 
                Application.Terminate; 
                end; 

          Application.Terminate; 
          end; 
        end; 
end;

No seguinte um exemplo mais complexo que faz tratamento para o GDSCODE e o SQLCODE

http://www.koders.com/delphi/fid154EA55117...aspx?s=database

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...