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 

Clonar registro de tabela Pai e Filha

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


Registrado: Segunda-Feira, 1 de Agosto de 2005
Mensagens: 177

MensagemEnviada: Ter Mar 10, 2020 10:48 pm    Assunto: Clonar registro de tabela Pai e Filha Responder com Citação

Boa noite pessoal estou tentando clonar um determinado registro de uma tabela pai e filha. Exemplo: Orçamento e Itensm mas so ta clonado a tabela pai a filha vem em branco, estou usando esse código abaixo:

Alguem poderia me ajudar?

procedure TForm1.btnClonarClick(Sender: TObject);
VAR
// Variaveis Tabela Mestre:
vID : Integer;
vCODE, vCOMMENT, vFINALIZADO : String;

// Variaveis Tabela Detalhe:
vDetalheID : integer;
vDetalheREFERENCIA, vDetalheCICLO01, vDetalheCICLO02, vDetalheCICLO03 : double;

begin
cdsCALIBRACAO.Open;
// vID := cdsCALIBRACAO.FieldByName('ID').value;
vCODE := cdsCALIBRACAO.FieldByName('CODE').AsString;
vCOMMENT := cdsCALIBRACAO.FieldByName('COMMENT').AsString;
vFINALIZADO := cdsCALIBRACAO.FieldByName('FINALIZADO').AsString;

// vDetalheID := cdsCALIBRAITENS.FieldByName('ID').Value;
vDetalheREFERENCIA := cdsCALIBRAITENS.FieldByName('REFERENCIA').Value;
vDetalheCICLO01 := cdsCALIBRAITENS.FieldByName('CICLO01').Value;
vDetalheCICLO02 := cdsCALIBRAITENS.FieldByName('CICLO02').Value;
vDetalheCICLO03 := cdsCALIBRAITENS.FieldByName('CICLO03').Value;

cdsCALIBRACAO.insert;
// cdsCALIBRACAO.FieldByName('ID').Value := vID ;
cdsCALIBRACAO.FieldByName('CODE').AsString := vCODE;
cdsCALIBRACAO.FieldByName('COMMENT').AsString := vCOMMENT;
cdsCALIBRACAO.FieldByName('FINALIZADO').AsString := vFINALIZADO;
cdsCALIBRACAO.Post;
cdsCALIBRACAO.ApplyUpdates(0);
cdsCALIBRACAO.Refresh;

cdsCALIBRAITENS.Append;
// cdsCALIBRAITENS.FieldByName('ID').Value := vID;
cdsCALIBRAITENS.FieldByName('REFERENCIA').Value := vDetalheREFERENCIA;
cdsCALIBRAITENS.FieldByName('CICLO01').Value := vDetalheCICLO01;
cdsCALIBRAITENS.FieldByName('CICLO02').Value := vDetalheCICLO02;
cdsCALIBRAITENS.FieldByName('CICLO03').Value := vDetalheCICLO03;

cdsCALIBRAITENS.Post;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Mar 11, 2020 10:17 am    Assunto: Responder com Citação

Bom dia,

Você está executando o ApplyUpdates do ClientDataSet de itens após o Post?

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-casa
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Mar 11, 2020 11:46 am    Assunto: Responder com Citação

Se você utiliza este modelo:
https://www.devmedia.com.br/master-detail-simples-e-descomplicado-para-iniciantes-delphi/20370

Você pode clonar ambos, bastando clonar o dataset através da função data ou se não me engano tem uma função para clonar os dados, não estou com o delphi para tirar a dúvida, mas de qualquer forma baixe este exemplo da embarcadero, tem de ter um login:

http://cc.embarcadero.com/Item.aspx?id=21128



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
carranca
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 1 de Agosto de 2005
Mensagens: 177

MensagemEnviada: Qua Mar 11, 2020 1:39 pm    Assunto: Responder com Citação

imex escreveu:
Bom dia,

Você está executando o ApplyUpdates do ClientDataSet de itens após o Post?

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-casa

sim
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
carranca
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 1 de Agosto de 2005
Mensagens: 177

MensagemEnviada: Qua Mar 11, 2020 1:42 pm    Assunto: Responder com Citação

johnny-walker escreveu:
Se você utiliza este modelo:
https://www.devmedia.com.br/master-detail-simples-e-descomplicado-para-iniciantes-delphi/20370

Você pode clonar ambos, bastando clonar o dataset através da função data ou se não me engano tem uma função para clonar os dados, não estou com o delphi para tirar a dúvida, mas de qualquer forma baixe este exemplo da embarcadero, tem de ter um login:

http://cc.embarcadero.com/Item.aspx?id=21128

não quero clonar todo o DataSet apenas o registro selecionado

bye
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Mar 11, 2020 2:22 pm    Assunto: Responder com Citação

O ApplyUpdates está retornando 0?
Você tem código no evento OnReconcileError para capturar eventuais mensagens de erro ao atualizar o banco de dados?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Mar 11, 2020 2:59 pm    Assunto: Responder com Citação

Tem-se de tomar cuidado ao configurar os providersflags visto que se configurados errados, podem causar algumas dores de cabeça.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
carranca
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 1 de Agosto de 2005
Mensagens: 177

MensagemEnviada: Qua Mar 11, 2020 3:50 pm    Assunto: Responder com Citação

imex escreveu:
O ApplyUpdates está retornando 0?
Você tem código no evento OnReconcileError para capturar eventuais mensagens de erro ao atualizar o banco de dados?



Não
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Mar 11, 2020 5:14 pm    Assunto: Responder com Citação

Confira um exemplo no tópico abaixo:
http://www.activedelphi.com.br/forum/viewtopic.php?t=95014&sid=469d758ed9101a2736c7cd019df4813e

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Sex Mar 13, 2020 7:25 am    Assunto: Responder com Citação

O evento onreconcile error é bom utilizar, pois nem toda exceção ocorre no objeto exception e quando se dá o applyudates pode ser diferente de zero, zero é quando não ocorre nenhum tipo de erro.

Com o applyupdadeste igual a -1 não gera erros, mas não quer dizer que eles não existam, somente não são mostrados ao usuário.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
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