ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Master Detail Modificar chave primaria

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
gutonovaes19
Novato
Novato


Registrado: Quarta-Feira, 18 de Junho de 2008
Mensagens: 50

MensagemEnviada: Sex Dez 08, 2017 10:52 am    Assunto: Master Detail Modificar chave primaria Responder com Citação

Tenho um cadastro do tipo master detail. A chave primaria da tabela pai é composta (codigo + data). A tabela filha possui PK codigo+ data+item.
Montado com query+provider+ clientedataset.
As perguntas são:
1 - posso modidicar a chave primaria da MASTER e replicar na DETAIL? Meu cliente que modificar o campo DATA
2 - Tenho uma apostila de um curso que fiz com o Eduardo Rocha anos atras. Nela, não há exemplos dessa situação e em determinado trecho ele afirma que a chave primaria nunca será modificada. Não está claro pra mim se era no contexto do treinamento ou se é algo proibitivo.
Curso Desenvolvendo uma aplicação utilizando ClientDataset, DbExpress e Firebird.

Por favor, não critiquem o modelo, é um sistema legado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
lokasso
Aprendiz
Aprendiz


Registrado: Terça-Feira, 11 de Abril de 2017
Mensagens: 174

MensagemEnviada: Sex Dez 08, 2017 3:47 pm    Assunto: Responder com Citação

gutonovaes19 brother não é aconcelhavel tu usar chave composta em PK, ainda mais com data e muito menos muda-la. Mas enfim...

Para mudar a PK não pode ser Auto Incremento e ao invés de somente leitura no componente que está usando, no seu caso ClientDataSet, tem que deixar a propriedade Ready-Only false, ou seja, deixa-la habilitada para entrar com o valor e habilitar o dbedit que pega o ID e deixa-lo editavel, ai o usuário poderá colocar qualquer valor ali, se tiver usando generator e trigger, desabilite-os, senão vai aparecer apenas erro de violação de PK.


Aaah um conselho, já que o usuário quer mudar a PK, se prepare para o caos que virará tua vida, se não tiver jeito mesmo de contornar essa situação, faça o usuário assinar um termo de responsabilidade, onde ele se responsabiliza por eventuais conflitos no sistema e se previna, faça um backup do banco de dados antes de fazer essa modificação no banco para eventual "problema".


Boa Sorte tu vai precisar caso fizer isso, se prepare


Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB