Buscar

Erros de bancos de dados

Código

{Erros de bancos de dados
A exceção EDBEngineError permite a identificação de erros de bancos de dados gerados pela BDE.}


try
  TblCli.Post;
except
  on E: EDBEngineError do
    if E.Errors[0].ErrorCode = DBIERR_KEYVIOL then
      ShowMessage('Cliente já cadastrado.');
end;

{Note que a variável E, que vai identificar o erro, só precisa ser declarada no bloco de tratamento da exceção. No help você pode consultar outras propriedades de EDBEngineError que podem ser importantes.
Você também pode usar os eventos de erro do componente Table, sem precisar de blocos de tratamento.
}

procedure TFrmCadCli.TblCliPostError(DataSet: TDataSet; E:
  EDatabaseError; var Action: TDataAction);
begin
  if(E is EDBEngineError) then
    with EDBEngineError(E) do
      case Errors[0].ErrorCode of
        DBIERR_KEYVIOL: ShowMessage('Cliente já cadastrado.');
        DBIERR_REQDERR: ShowMessage('Campo obrigatório vazio.');
      end
  else
    ShowMessage('Erro no banco de dados:' + #13#13 + E.Message);
  Action := daAbort;
end;

{Alguns códigos de erro da BDE estão listados abaixo. Todas as constantes e funções relacionadas à API da BDE no Delphi estão na Unit BDE.pas, que deve ser adicionada à cláusula uses.

Constante       Descrição
DBIERR_KEYVIOL  Violação de chave primária
DBIERR_MAXVALERR        Valor máximo excedido
DBIERR_FORIEGNKEYERR    Erro de chave externa, como em integridade referencial
DBIERR_LOCKED   Registro travado
DBIERR_FILELOCKED       Arquivo travado
DBIERR_NETMULTIPLE      Mais de um diretório usado como NetFileDir
DBIERR_MINVALERR        Campo com valor mais baixo que valor mínimo
DBIERR_REQDERR  Campo obrigatório faltando

Para desenvolver um sistema genérico de tratamento de erros, considere a opção de criar um método para o evento OnException do objeto Application. Esse método é chamado sempre que houver uma exceção em qualquer parte do sistema.
}

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 21/05/04
Por: Leonardo Filipi
Visualizada: 5327 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009