Fórum Tratar erro de FK #406734
17/08/2011
0
try CdsProdutos.Delete; CdsProdutos.ApplyUpdates(0); except CdsProdutos.Edit; CdsProdutosORIGEM.Value := '9'; CdsProdutos.Post; CdsProdutos.ApplyUpdates(0); CdsProdutos.Next; end; end else CdsProdutos.Next;
Obrigado a todos
Felipe Ip
Curtir tópico
+ 0Posts
18/08/2011
Leonardo Xavier
Gostei + 0
26/08/2011
Geversom Sousa
DELETE FROM TABELA2 T2 WHERE NOT EXISTS (SELECT CODIGO /* verifica se o registro existe na tabela 1 */ FROM TABELA1 T1 WHERE T1.CODIGO = T2.CODIGO) AND NOT EXISTS (SELECT CODIGO FROM TABELA3 T3 /* verifica se existe na tabela 3 - que viola a FK */ WHERE T3.CODIGO = T2.CODIGO).
Explicando para que o registro seja deletado, o mesmo não deverá existir na tabela 1 e nem na tabela 3
tabela 1 - a sua tabela base. tabela 3 - a tabela que viola a FK.
---
para marcar os registros você também pode fazer via SQL com algo semelhante à:
UPADTE TABELA2 T2 SET ORIGEM = '9' WHERE NOT EXISTS (SELECT CODIGO /* verifica se o registro existe na tabela 1 */ FROM TABELA1 T1 WHERE T1.CODIGO = T2.CODIGO) AND EXISTS (SELECT CODIGO FROM TABELA3 T3 /* verifica se exista na tabela 3 - que viola a FK */ WHERE T3.CODIGO = T2.CODIGO).
Abraço
Geversom Sousa
Desenvolvedor Delphi - C#
(62) 8246-8168 // 8442-2368
http://www.gedeveloper.blogspot.com/
http://twitter.com/geversom
http://photosge.blogspot.com/
Gostei + 0
26/08/2011
Pjava
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)