FOREING KEY

Delphi

01/11/2006

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

Curtidas 0

Respostas

Richardsonlourenco

Richardsonlourenco

01/11/2006

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


GOSTEI 0
Rodrigorpb

Rodrigorpb

01/11/2006

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

Ou apenas traduzir?


Obrigado


GOSTEI 0
Marco Salles

Marco Salles

01/11/2006

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


GOSTEI 0
Rodrigorpb

Rodrigorpb

01/11/2006

Estou usando o IBX (IBquery e IBUpdate).

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


Rodrigo.


GOSTEI 0
Rodrigorpb

Rodrigorpb

01/11/2006

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?


GOSTEI 0
POSTAR