GARANTIR DESCONTO

Fórum Como tratar erro de PK (primary key) e FK (secund. key) ? #40472

01/12/2003

0

Ao tentar deletar um arquivo que existe uma dependencia da erro de chave estrangeira. Como tratar este erro !
Estou usando apenas querys. Não uso table em momento algum de minha aplicação.
Como tratar o erro de violação de chave estrangeira que retorna do meu banco firebird ?
Como tratar o erro tambem de violação de chave primaria que retorna do meu banco firebird ?
Ao excluir registros e ao inserir registros repectivamente.


Midas

Midas

Responder

Posts

01/12/2003

Travain

Você deve colocar no evento de erro da query o seguinte código:

Se for erro de chave primária o Firebird retorna este número: 335544665
Se for erro de chave estrangeira é este: 335544466

if errcode = 335544665 then
begin
MessageDlg(´Já existe esse registro.´,mtWarning,[mbOK],0);
abort;
end;


Na sua aplicação você coloca a mensagem de erro que você quiser.

Até mais.


Responder

Gostei + 0

01/12/2003

Afarias

caso esteja usando IBX, um exemplo usando blobos TRY...EXCEPT seria::


try
{operação, ex: IBQuery1.Post}
except
on E: EIBInterBaseError do
HandleIBError(E.SQLCode, E.IBErrorCode);
end;

{ ... }

procedure HandleIBErrorCode(SQLCode, IBErrorCode: Integer);
begin
case IBErrorCode of
335544665: {mensagem de erro chave primária}
335544466: {mensagem de erro chave estrangeira}
end;
end;


todos códigos de erro do IB vc encontra no manual INTERBASE LANGUAGE REFERENCE.


T+


Responder

Gostei + 0

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

Aceitar