Fórum Delete com valores relacionados em outras tabelas(FK) #345096
27/08/2007
0
Como fazer para que as tabelas que estejam interligadas entri si sejam na hora de excluir da alguma tipo de ShowMessage avisando que o registro não pode ser excluído por está relacionado com outra tabela?
Estou tentando excluir um dado que tem refencia em outra tabela mas da o erro assim:
Alguem já faz isso constantemente para que possa me dar um ajudinha?
Estou tentando excluir um dado que tem refencia em outra tabela mas da o erro assim:
--------------------------- Debugger Exception Notification --------------------------- Project MATERIAIS.exe raised exception class EUIBError with message ´violation of FOREIGN KEY constraint "FK_LANCAMENTO_PROJETO_2" on table "LANCAMENTO_PROJETO" Foreign key references are present for the record violation of FOREIGN KEY constraint "" Error Code: 146´. --------------------------- Break Continue Help ---------------------------
Alguem já faz isso constantemente para que possa me dar um ajudinha?
Jpauloss
Curtir tópico
+ 0
Responder
Posts
27/08/2007
Developer1978
No evento de exclusão coloque assim:
try
(escreva aqui o evento do delete)
except
Application.MessageBox(´Exclusão não permitida, registro presente em outra a aplicação, ´MATERIAIS´, MB_ICONERROR);
end;
Ou a mensagem que voce quiser.
try
(escreva aqui o evento do delete)
except
Application.MessageBox(´Exclusão não permitida, registro presente em outra a aplicação, ´MATERIAIS´, MB_ICONERROR);
end;
Ou a mensagem que voce quiser.
Responder
Gostei + 0
27/08/2007
Romulocpd
Olá,
O FireBird é bonzinho e no erro exibe o nome da tabela e o nome da constraint que não deixou a exclusão acontecer.
Em meu sistema criei 2 arquivos TABELAS e CAMPOS e nele eu fiz tipo:
[TABELAS]
PRODUTO = Cadastro de Produtos
MATERIAIS = Cadastro de Materiais
MOV_ESTOQUE = Movimentação de Estoque
E campos:
[CAMPOS]
FK_MOV_ESTOQUE_PRODUTO = Código do Produto na Movimentação de Estoque.
Desta forma o sistema ao dar este erro eu pego, pela string do erro, o nome do campo (ON TABLE) e o nome da constraint (em FOREIGN KEY constraint). Uso os arquivos como arquivos INI e consigo exibir uma mensagem educadíssima ao usuário.
Valeu!
O FireBird é bonzinho e no erro exibe o nome da tabela e o nome da constraint que não deixou a exclusão acontecer.
Em meu sistema criei 2 arquivos TABELAS e CAMPOS e nele eu fiz tipo:
[TABELAS]
PRODUTO = Cadastro de Produtos
MATERIAIS = Cadastro de Materiais
MOV_ESTOQUE = Movimentação de Estoque
E campos:
[CAMPOS]
FK_MOV_ESTOQUE_PRODUTO = Código do Produto na Movimentação de Estoque.
Desta forma o sistema ao dar este erro eu pego, pela string do erro, o nome do campo (ON TABLE) e o nome da constraint (em FOREIGN KEY constraint). Uso os arquivos como arquivos INI e consigo exibir uma mensagem educadíssima ao usuário.
Valeu!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)