Fórum Deletar cadastros e vincular movimentações vinculadas a outro registro #421356
09/08/2012
0
Tenho uma tela CadPadrao, onde herdo ela para todos os cadastros.
Funciona perfeitamente, Insert, Edit, Delete, pesquisa etc.
Porém quanto vou deletar por exemplo um produto que já tem movimentações vinculadas, eu tive que criar um código próprio para produtos, para procurar um novo produto para substituir o que está sendo deletado.
if Application.MessageBox(PChar(Erro: Registro deve estar vínculado a alguma movimentação! + #13 + Deseja substituir as movimentações desse código por outro?), PChar(NomeSistema), MB_YESNO + MB_ICONQUESTION) = mrYes then
begin
CodigoPesquisa := Pesquisa(View, CampoID);
if CodigoPesquisa then
begin
if Tabela = CADPRODUTOS_SERVICOS then
begin
ExecutarSQL(update movnotasfiscais_itens set id_produto_servico = + QuotedStr(CodigoPesquisa)+ where id_produto_servico = + QuotedStr(cdsMaster.FieldByName(CampoID).AsString) + and id_empresa = + IntToStr(CodigoEmpresa));
end;
cdsMaster.Delete;
cdsMaster.ApplyUpdates(0);
end;
end;
Como é uma tela genérica, queria saber se tem uma maneira de fazer a mudança sem precisar fazer update de tabela em tabela que necessite do produto.
Aguardo
Huelbert Oliveira
Curtir tópico
+ 0Posts
09/08/2012
Joel Rodrigues
Gostei + 0
09/08/2012
Huelbert Oliveira
queria um código que atualiza todas as tabelas sem precisar setar uma por uma.
Gostei + 0
09/08/2012
Joel Rodrigues
Acho que para isso você precisaria fazer uma pesquisa nos objetos do banco e localizar todas as tabelas que contém esse campo. Depois gerar um script pra cada uma e executar (a partir doo Delphi).
Não acho que seja viável. Generalizar é bom, mas tem limites. Com isso você pode acabar tendo confusões no futuro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)