Buscar

Tratando erros no banco de dados

Código

Procedure AppException(Sender: TObject; E: Exception);
...
implementation
...
procedure TChamado.AppException(Sender: TObject; E: Exception);
var j: Integer;
Msg: String;
begin
Warning1.Hide;
if E is EDBEngineError then
begin
with EDBEngineError(E), Errors[0] do
if ErrorCode = 9734 then // Has Details
ShowMessage('Este registro não pode ser removido, outros arquivos precisam dele.')
else
if ErrorCode = 9729 then //11756 then // Key Violation (o nro do codigo está errado)
ShowMessage(Format('Ocorreu um erro no banco de dados: código %d.', [ErrorCode]))
else
if ErrorCode = 11270 then // another .NET file
ShowMessage('Diretório controlado por outro arquivo .NET, verifique configuração do Banco de Dados.')
else
if ErrorCode = 9733 then // Master record missing
ShowMessage('Registro Master não encontrado.')
else
if ErrorCode = 9734 then // Master has details
ShowMessage('Este registro não pode ser removido, ele está sendo usado pelo Fireman.')
else
if ErrorCode = 8708 then // Record/Key deleted
ShowMessage('Este registro foi removido por outro Operador.')
else
if ErrorCode = 10241 then // alredy in use - // Copy usado para pegar o nome do usuário
with Errors[2] do
ShowMessage(Format('Este registro está sendo usado pelo Operador: ''%s''.', [Copy(Message, 7, 20)]))
else // Outros
begin
for j := 0 to ErrorCount -1 do // Loop para pegar todas as linhas das msg de erro
with Errors[j] do
Msg := Msg + Message + #13;
ShowMessage(Format('EDBEngineError %d: %s', [ErrorCode, Msg]))
end
end
else
if E is EConvertError then
begin
with EConvertError(E) do
if Pos('date and time', Message) > 0 then
ShowMessage('Informe uma data e hora válida.')
else
if Pos('is not a valid time', Message) > 0 then
ShowMessage('Informe uma hora válida.')
else
if Pos('is not a valid date', Message) > 0 then
ShowMessage('Informe uma data válida.')
else
Application.ShowException(E);
end
else
Application.ShowException(E);
end; // AppException  

Publicidade

Vote na dica




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


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 24/06/03
Por: Felipe Monteiro
Visualizada: 6686 vezes

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