Ir para conteúdo
  • Cadastre-se

dev botao

Duplicar (clonar) uma tabela (Firebird)


  • Este tópico foi criado há 4900 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros

Boa noite amigos, gostaria de saber se eu consigo clonar uma tabela usando o Firebird ?

Eu tenho um software onde o cliente tem os itens que ficam marcado em seu histórico e atualmente estou usando uma consulta sql pra importar esses registros no momento do fechamento dessa sua conta... e dentro de um while eu vou inserindo na tabela os itens, mas demora um pouco e gostaria de saber se consigo fazer algo como o batchmove que o paradox tinha ? As tabelas possuem a mesma estrutura.

Obrigado.

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Acho que se você abrir explicitamente uma transação no Inicio do Loop e só comita-la no final... ficará bem mais rápido...

A maneira de como fazer isso dependerá muito do seu componente de acesso a dados

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Se eu entendi, você quer adicionar todos os registros de uma tabela para outra que tem a mesma estrutura sem precisar percorrer ela...

Se elas tem a mesma estrutura você pode usar:


Insert into TABELA1  SELECT * FROM TABELA2 WHERE FILTRO QUE EU QUERO

Quantas reuniões foram mesmo esta semana? Reúna os amigos!

Link para o comentário
Compartilhar em outros sites

A sugestão do lâmpada é muito boa :)

Uma outra alternativa, caso seu laço faça algum processamento, seria criar uma stored procedure simples e mover o código executado no while para o procedimento. Desta forma o processamento será feito server-side.

Quando você tem um servidor de base de dados, você desejará tipicamente reduzir ao máximo o tráfego na rede ;) então tudo que você puder mover para o servidor, geralmente será feito ;)

Redes e segurança de informação:

Acesse http://www.paulogurgel.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Para fazer coisas mais complexas, como usando dados de tabelas diferentes ou bancos de dados diferentes. Verifique programas chamado ibdatapump, fbclone...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros

Se eu entendi, você quer adicionar todos os registros de uma tabela para outra que tem a mesma estrutura sem precisar percorrer ela...

Se elas tem a mesma estrutura você pode usar:


Insert into TABELA1  SELECT * FROM TABELA2 WHERE FILTRO QUE EU QUERO

Valeu lampada... ja melhorou muito... fiz dessa forma:

      q1.Close;

      q1.SQL.Clear;

      q1.SQL.Text := 'insert into VENDA_001 (CODIGO,DATA,DESCRICAO,GRUPO,QUANTIDADE,VALOR,VALORTOTAL,FORNECEDOR)'+

                     'select CODIGO,DATA,DESCRICAO,GRUPO,QUANTIDADE,VALOR,VALORTOTAL,FORNECEDOR from CAIXA where CLIENTE = :vCodCliente and MARCADO = :vMarc order by DATA';

      q1.ParamByName('vCodCliente').AsInteger := qClientesCODIGO.AsInteger;

      q1.ParamByName('vMarc').AsInteger := 'SIM';

      q1.ExecSQL;

Até aqui ta legal... mas se trata de um software em uma loja que vende roupas e calçados. O que acontece é que alguns clientes levam para provar e uns dias depois vão até a loja, e nem sempre ficam com todos os produtos que levou... eu precisava com que os itens dessa puxada voltassem ao estoque logo após o ExecSQL, pois qdo a mercadoria é levada o estoque é baixado... mas eu não queria colocar esse resultado num while editando a tabela ESTOQUE.

Alguma dica ?

Valeu + uma vez.

Sérgio

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

Uai! Que loja boa é essa ;) dá pra ir pra formatura de sapato novo e ainda levar somente o tênis ;D uau!

Brincadeiras a parte, eu acho que seria interessante criar uma devolução de produtos na própria tabela de itens de venda.

Basicamente você recupera a venda, seleciona os itens que serão devolvidos ao estoque e clica em devolver. Na "itens de venda" você marca um status como devolvido e dá a entrada no estoque. Isso tecnicamente falando é uma boa solução, agora eu não sei quais seriam os requisitos fiscais o.o

[]'s

Redes e segurança de informação:

Acesse http://www.paulogurgel.com.br

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4900 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.