Fórum FOREING KEY #332496

01/11/2006

0

Olá amigos,

Gostaria de saber como vocês fazem para colocar uma pensagem para o usuário na hora que a pessoal tenta deletar um FK do Banco de Dados, já pensei em tudo mas não consigo, não sei se o erro vem do banco ou do delphi mesmo.

violation of FOREING KEY constraint "FK_CADCIDADE" on table "CIDADE"


Gostaria de Trocar esta mensagem a cima por está: ´Esta Infomação está sendo usado por outra tabela´.


Ficarei grato se puder me ajudar.


Obrigado,

Rodrigo.


Rodrigorpb

Rodrigorpb

Responder

Posts

01/11/2006

Richardsonlourenco

Eu uso uma função que verifica a existência de uma chave. Caso exista eu exibo a menssagem e não deixo que o sistema tente excluir o registro. Caso contrário eu envio o comando de deleção para o DataSet


Responder

Gostei + 0

01/11/2006

Rodrigorpb

Eu nÃ&o consigo traduzir ela no Except On EConvertError Do?

Ou apenas traduzir?


Obrigado


Responder

Gostei + 0

01/11/2006

Marco Salles

Se voce estiver usando DbExpress com ClientDataSet , voce deve programar o evento OnreconcileErro do ClientDataSet...


Responder

Gostei + 0

01/11/2006

Rodrigorpb

Estou usando o IBX (IBquery e IBUpdate).

Mas nÃ&o tenho a mínima idéia como traduzo esta mensagem de Integridade.


Rodrigo.


Responder

Gostei + 0

01/11/2006

Rodrigorpb

Pessoal consegui resolver o problemas mas não sei o que o OnDeleteError faz.
Eu fiz assim.
procedure TDM.qContasPatrimoniaisDeleteError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
if pos(´violation of FOREIGN KEY constraint´,e.Message) > 0 Then
Begin
 showmessage(´Este registro não pode ser deletado porque esta sendo usado por outra tabela´);
 abort;
End;
end;


Funcionou mas minha pergunta é.

Coloquei o código no OnDeleteError da IBQuery, isto é correto?

E o que o OnDeleteError faz?


Responder

Gostei + 0

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

Aceitar