Fórum Erro de Chave Estrangeira ao deletar registro #403503
21/06/2011
0
Tenho duas tabelas com chave estrangeira e estou querendo deletar o registro da primeira tabela e quando isso acontecer quero que os registros relacionados na segunda também sejam deletados.
estou usando clientdataset.
Como eu poderia implementar esse código?
Tentei do modo abaixo e deu erro de Foreign key:
DM.clientdataset.Delete;
DM.clientdataset.ApplyUpdates(0);
DM.clientdataset.Refresh;
estou usando clientdataset.
Como eu poderia implementar esse código?
Tentei do modo abaixo e deu erro de Foreign key:
DM.clientdataset.Delete;
DM.clientdataset.ApplyUpdates(0);
DM.clientdataset.Refresh;
Francisco Macedo
Curtir tópico
+ 0
Responder
Posts
22/06/2011
Eliel Martins
Olá Francisco !
O que você deve fazer é excluir os registros que depende desse registro, ou seja excluir todos os registro que tem vinculos com estes registros e depois fazer a exclusão desse registro. Bom vou fazer um exemplo abaixo :
Depois de ter excluido o(s) registro(s) que tem vinculo com a CATEGORIA (4) que desejo excluir, agora vamos excluir a CATEGORIA que desejamos excluir.
Espero ter ajudado.
Eliel G. Martins
O que você deve fazer é excluir os registros que depende desse registro, ou seja excluir todos os registro que tem vinculos com estes registros e depois fazer a exclusão desse registro. Bom vou fazer um exemplo abaixo :
DM.Query.close;
DM.Query.Sql.Clear;
DM.Query.Sql.Add('DELETE FROM PRODUTO WHERE CATEGORIA = :PRAM_CATEGORIA ');
DM.Query.ParamByName('PRAM_CATEGORIA').AsInteger := DM.clientdataset.FieldByName('CATEGORIA').AsInteger;
DM.Query.Exec;
Depois de ter excluido o(s) registro(s) que tem vinculo com a CATEGORIA (4) que desejo excluir, agora vamos excluir a CATEGORIA que desejamos excluir.
DM.clientdataset.Delete; DM.clientdataset.ApplyUpdates(0);
Espero ter ajudado.
Eliel G. Martins
Responder
Gostei + 0
22/06/2011
Francisco Macedo
Obrigado Eliel.
Resolvi alterando no banco de dados o 'delete rule' da chave estrangeira para cascade.
Resolvi alterando no banco de dados o 'delete rule' da chave estrangeira para cascade.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)