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

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
dbmaster
Novato
Novato


Registrado: Sábado, 2 de Novembro de 2013
Mensagens: 66

MensagemEnviada: Dom Dez 04, 2016 7:33 pm    Assunto: Clonar registro Responder com Citação

ola Amigos, como faço para clonar um registro??
ex.:

codigo, nome
001 ANTONIO

ao clicar no botao clonar o registro selecionado
quero clonar na mesma tabela esses dados, mudando so o codigo para 0002.

Banco Firebird.

desde ja agradeço
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
StraightFree
Novato
Novato


Registrado: Sexta-Feira, 17 de Julho de 2015
Mensagens: 86

MensagemEnviada: Ter Dez 06, 2016 3:25 pm    Assunto: Responder com Citação

dbmaster,

Não existe uma função ou rotina pronta para a clonagem de um registro. Você deverá carregar com um select em uma Query as informações que você quer clonar. Caso seu campo código seja auto incremento, você vai fazer um insert e passar os dados que você precisa como parâmetro.

Código:

Query.close;
Query.sql.clear;
Query.sql.add('insert into TABELA (nome) values (:nome));
Query.ParamByName('nome').asstring := QueryAClonar.fieldbyname('nome').value;
ExecSQL;


Caso a tabela não seja auto incremento, você terá que pegar o último código usado com um 'select max(codigo) from TABELA' e incrementar manualmente em 1.


Essa é uma ideia geral de como fazer, caso tenha dúvida posta ai.

Abraços!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


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

MensagemEnviada: Qua Dez 07, 2016 8:47 am    Assunto: Responder com Citação

Bom dia,

dbmaster, pelo que eu entendi, acho que você poderia utilizar um Insert com Select.
Considerando que o código não seja auto-incremento a sintaxe ficaria mais ou menos da seguinte forma:

Código:
insert into Tabela (Codigo, Nome)
    select 2, Nome from Tabela where Codigo = 1


Se o código for auto-incremento basta remover o mesmo do comando, mantendo-o apenas na clausula Where.

Espero que ajude
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 -> Banco de Dados 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