Duplicar registros

25/03/2006

0

Bom dia a todos, eu já li varios topicos sobre duplicar dados, mas nenhum me ajudou muito no que eu quero. O negócio é seguinte, eu estou precisando duplicar um registro(mestre) e seus detalhes e seus sub-detalhes, só mudando o codigo ID, Exemplo eu tenho um registro de venda e ele tem os seus itens e cada item tem os seus sub-itens, gostaria de duplicar tudo.

Se alguem puder me passar uma idei de como fazer eu agradesco muito...
Eu trabalho com Delphi 7, DbExpress e FireBird.

É isso ai um bom fim de semana para todos...

Desde já muito obrigado.
Luciano Ramos


Luciano.sul

Luciano.sul

Responder

Posts

25/03/2006

Edilcimar

ou vc faz uma replicação do banco de dados via um replciator ou faz uma função que duplique o bd em 2 arquivos diferentes, que no mesmo ou em outro computador, procure por replicação aqui no fórum e achará


Responder

25/03/2006

Luciano.sul

Edilcimar desculpa, mas eu acho que não me expressei corretamente, eu quero é que em determinado momento o meu cliente possa simplesmente fazer uma venda igual à outra venda que ele já tenha feito...Exemplo ele seleciona uma venda de dois dias atras e clica em um botão e o sistema gera uma nova nota com os mesmos dados da nota que ele selecionou...

Duplicar estas informações...

É isso ai obrigado pela atenção...

Até mais

Luciano Ramos


Responder

27/03/2006

Edilcimar

Neste caso, teria que fazer um filtro, para selecionar a referida venda, e depois copiá-la para outro local


Responder

27/03/2006

Luciano.sul

Edilcimar novamente muito obrigado pela atenção data a minha pergunta. Eu não quero as coisas mastigadas, mas não ajudou muito a tua resposta. Tu pode detalhar um pouco mais....

É isso ai, uma boa semana pra ti...

Luciano Ramos


Responder

27/03/2006

Pecchiai

Bom Luciano, eu criaria uma query auxiliar para não mexer no registro que o usuario esta apontando, e faria um select da venda usando a query auxiliar, depois pego o resultado do select e insiro um novo registro com os campos do registro anterior, e faria o mesmo com os itens e sub-itens.

espero ter ajudado.
Adilson


Responder

27/03/2006

Pecchiai

Bom Luciano, eu criaria uma query auxiliar para não mexer no registro que o usuario esta apontando, e faria um select da venda usando a query auxiliar, depois pego o resultado do select e insiro um novo registro com os campos do registro anterior, e faria o mesmo com os itens e sub-itens.

espero ter ajudado.
Adilson


Responder

27/03/2006

Luciano.sul

Adilson obrigado pela atenção, vou fazer uns testes para ver como é que fica... :D

Obrigado
Luciano Ramos


Responder

27/03/2006

Emerson Nascimento

tenho uma idéia a repeito - que é bem simples por sinal.
poste a estrutura das tabelas em questão para a resposta ser o mais próxima possível da sua necessidade.


Responder

27/03/2006

Luciano.sul

emerson.en obrigado pela atenção mas acredito que a estrutura da tabela não ira dizer nada. Eu so quero ideias de como duplicar um registro e seus detalhes.

Obrigado
Luciano Ramos


Responder

28/03/2006

Emerson Nascimento

bom, aí vai a minha idéia:

supondo que vc tenha algum campo que possa ser manipulado livremente, faça o seguinte:

novonumero := gettickcount; // integer
cadastro := now; // datetime

´insert into pedidovenda (numero*, cadastro, emissao, cliente, etc...) ´+
´select :novonumero, :cadastro, emissao, cliente, etc ´+
´from perdidovenda where id = :id_pedidodesejado ´
passo como parâmetro o id do pedido que eu quero copiar, o ´novo´ número do pedido e a data de cadastro, que estão nas variáveis.

pronto. criei o cabeçalho do novo pedido com as mesmas informações do pedido origem, exceto nos campos ´numero´, ´ID´ e ´cadastro´. o valor do campo ´numero´ e do campo ´cadastro´ serão usados para procurar o novo ID.

´select ID from pedidovenda where numero = :novonumero and cadastro = :cadastro´
e passo como parâmetro as variáveis usadas anteriormente.
novoID := FieldByName(´ID´).asInteger;
(pedi a estrutura da sua tabela para melhor formar esses campos de ´filtragem´)

agora, de posse do novo ID, vamos inserir os itens:
´insert into pedidoitem (ID_Pedido, ID_Produto, Vlr_Unit, Qtd, etc) ´+
´select :NovoID, ID_Produto, Vlr_Unit, Qtd, etc ´+
´from pedidoitem where ID_Pedido = :id_pedidodesejado ´
basta passar os parâmetros corretos e pronto.

isso também poderia ser feito numa stored procedure.


*numero seria um campo ´livre´ e nesse caso eu estou supondo que seja do tipo numérico.


Responder

28/03/2006

Luciano.sul

emerson.en obrigado pela resposta, vou dar uma testada. Obrigado mesmo pela ajuda...

Até mais...

Luciano Ramos


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar