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 

Laço de repetiçaõ em duas tabelas

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


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Ter Jul 24, 2012 7:33 pm    Assunto: Laço de repetiçaõ em duas tabelas Responder com Citação

Olá meus parceiro irmãos um abraço para todos!!!
Como ficaria um laço de repetição em duas tabelas?
estou fazendo assim.
Código:

cdvenda.First;
 cdvenda2.First;
 while not (cdvenda.Eof) and
not (cdvenda2.Eof) do begin
 .........

mais não repeti!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Ter Jul 24, 2012 11:12 pm    Assunto: Responder com Citação

O que vc quer dizer laço em duas tabelas ??? uma é filha da outra ???
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Ter Jul 24, 2012 11:30 pm    Assunto: Responder com Citação

Ghost_Rider escreveu:
O que vc quer dizer laço em duas tabelas ??? uma é filha da outra ???

eu tenho duas tabelas temporarias
e preciso fazer esse loop nas duas pra passar os dados dela para a tabela
do banco se eu não fizer esse laço de repetição so vai passa o primeiro dado
sendo q em cada tabela temp. tem mais dados.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
viox
Colaborador
Colaborador


Registrado: Sábado, 22 de Outubro de 2011
Mensagens: 1090
Localização: SINOP - MT

MensagemEnviada: Qua Jul 25, 2012 10:14 am    Assunto: Responder com Citação

programando de forma estruturada eu faria deste jeito.

Código:

tabela1.disablecontrols;
tabela1.first;
while not tabela1.eof do
begin
  ...
  tabela1.next;
end;
tabela1.enablecontrols;


e a mesma coisa para tabela2, porém criaria uma função, para não repetir código.
_________________
Just another Delphi guy.


http://www.soft42.com
http://www.nortaonegocios.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Qua Ago 08, 2012 11:08 am    Assunto: Responder com Citação

viox escreveu:
programando de forma estruturada eu faria deste jeito.

Código:

tabela1.disablecontrols;
tabela1.first;
while not tabela1.eof do
begin
  ...
  tabela1.next;
end;
tabela1.enablecontrols;


e a mesma coisa para tabela2, porém criaria uma função, para não repetir código.


Olá meus brother blz!
ainda não resolvi este problema quero colocar duas tabelas dentro
do while:
estou fazendo assim individual para cada tabela:
Código:

cdvenda.First;
  while not cdvenda.Eof
 do begin
    tblsaidaservico.open;
 tblsaidaservico.Insert;
 tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
  tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
  tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
  tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
  tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
  tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
  tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;

   cdvenda2.First;
    while not cdvenda2.Eof
 do begin
    tbl_saidaproduto.open;
 tbl_saidaproduto.Insert;
 tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
 tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
 tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
 tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
 tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
cdvenda.Next;
       cdvenda2.Next;

so que o laço so faz efeito pra segunda tabela!
a primeira não repete!!
como é q eu posso fazer isso para q funcione pra as duas?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
viox
Colaborador
Colaborador


Registrado: Sábado, 22 de Outubro de 2011
Mensagens: 1090
Localização: SINOP - MT

MensagemEnviada: Qua Ago 08, 2012 11:24 am    Assunto: Responder com Citação

Creio que vc queira assim, não?
Código:

  cdvenda.First;
  tblsaidaservico.Close;
  tblsaidaservico.Open;
 
  while not cdvenda.Eof do
  begin
    tblsaidaservico.Append;
    tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= bl_saidapaiSAIPAI_CODIGO.Value;
    tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
    tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
    tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
    tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
    tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
    tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;
    tblsaidaservico.Post;
    cdvenda.Next;
  end;

  cdvenda2.First;
  tbl_saidaproduto.Close;
  tbl_saidaproduto.Open;
  while not cdvenda2.Eof do
  begin
    tbl_saidaproduto.Append;
    tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
    tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
    tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
    tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
    tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
    tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
    tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
    tbl_saidaproduto.Post;
    cdvenda2.Next;
  end;

_________________
Just another Delphi guy.


http://www.soft42.com
http://www.nortaonegocios.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Qua Ago 08, 2012 11:38 am    Assunto: Responder com Citação

tenta assiim

Código:

cdvenda.First;
while not cdvenda.Eof do
begin
 tblsaidaservico.open;
 tblsaidaservico.Insert;
 tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
 tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
 tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
 tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
 tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
 tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;
 cdvenda.Post;
 cdvenda.Next;
end;

cdvenda2.First;
while not cdvenda2.Eof do
begin
 tbl_saidaproduto.open;
 tbl_saidaproduto.Insert;
 tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
 tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
 tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
 tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
 tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
 cdvenda2.Post;
 cdvenda2.Next
end;


Mais se estudar bem a logica da pra fazer alguma coisa melhor.

Espero que ajude.
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Qua Ago 08, 2012 1:11 pm    Assunto: Responder com Citação

maizena escreveu:
tenta assiim

Código:

cdvenda.First;
while not cdvenda.Eof do
begin
 tblsaidaservico.open;
 tblsaidaservico.Insert;
 tblsaidaservicoSAISER_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tblsaidaservicoSAISER_CODSERVICO.Value:= cdvendacod_prod.Value;
 tblsaidaservicoSAISER_SERVICO.Value:= cdvendanome_prod.Value;
 tblsaidaservicoSAISER_VALORSERVICO.Value:= cdvendavalor_prod.Value;
 tblsaidaservicoSAISER_QUANTIDADE.Value:= cdvendaquant_prod.Value;
 tblsaidaservicoSAISER_VALORTOTAL.Value:= cdvendasub_total.Value;
 tblsaidaservicoSAISER_PROF.Value:= cdvendaatendente.Value;
 cdvenda.Post;
 cdvenda.Next;
end;

cdvenda2.First;
while not cdvenda2.Eof do
begin
 tbl_saidaproduto.open;
 tbl_saidaproduto.Insert;
 tbl_saidaprodutoSAIPROD_COD_SAIDA_PAI.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tbl_saidaprodutoSAIPROD_CODPRODUTO.Value:= tbl_saidapaiSAIPAI_CODIGO.Value;
 tbl_saidaprodutoSAIPROD_PRODUTO.Value:= cdvenda2nome_cliente.Value;
 tbl_saidaprodutoSAIPROD_COD_BARRA.Value:= cdvenda2cod_cliente.Value;
 tbl_saidaprodutoSAIPROD_VALORPRODUTO.Value:= cdvenda2valor_par.Value;
 tbl_saidaprodutoSAIPROD_QUANTIDADE.Value:= cdvenda2quant_est.Value;
 tbl_saidaprodutoSAIPROD_VALORTOTAL.Value:= cdvenda2Valor_cartao.Value;
 cdvenda2.Post;
 cdvenda2.Next
end;


Mais se estudar bem a logica da pra fazer alguma coisa melhor.

Espero que ajude.

Olha só assim desse jeito ele repetiu a primeira tabela, so q a segunda tabela ele quadriplicou!
e agora?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Qua Ago 08, 2012 2:15 pm    Assunto: Responder com Citação

Amigo oq exatamente vc precisa?
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Qua Ago 08, 2012 11:34 pm    Assunto: Responder com Citação

maizena escreveu:
Amigo oq exatamente vc precisa?

fala meu brother maizena blz!
eu quero isso ai q eu coloquei.
eu tenho duas tabelas temporarias a venda e a venda2 ai os dados dessas tabelas eu salvo cada uma em uma tabela do banco.
venda tem dois registro ai vão dois registro para a tabela1 do banco.
venda2 tem dois registro ai vão dois regitro para a tabela2 do banco.
so q quando mando esses registros para a segunda tabela não vão dois vão quatro registros. entendeu?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Qui Ago 09, 2012 7:40 am    Assunto: Responder com Citação

Creio que entendi, agora, não seria mais interessante vc gravar nas tabelas temporárias em outro momento ao invés de criar loop´s? você já analisou esta possibilidade?
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
tanure
Profissional
Profissional


Registrado: Segunda-Feira, 7 de Novembro de 2011
Mensagens: 712

MensagemEnviada: Qui Ago 09, 2012 8:22 am    Assunto: Responder com Citação

na hora de armazenar nas tableas temporárias
ja pensou em salvaros 4 registros da primeira tabalea em vendas1
e todos os outros 4 registros da tabela 2 na vendas 2?

ao invés de colocar meio a meio
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 -> 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