Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
dbmaster Novato

Registrado: Sábado, 2 de Novembro de 2013 Mensagens: 66
|
Enviada: Dom Dez 04, 2016 7:33 pm Assunto: Clonar registro |
|
|
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 |
|
 |
StraightFree Novato

Registrado: Sexta-Feira, 17 de Julho de 2015 Mensagens: 86
|
Enviada: Ter Dez 06, 2016 3:25 pm Assunto: |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Dez 07, 2016 8:47 am Assunto: |
|
|
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 |
|
 |
|