Ir para conteúdo
Fórum Script Brasil
  • 0

abrir query com vários dados depois de um while


flavioavilela

Pergunta

galera, boa tarde...

estou tentando fazer uma consulta sql e já estou até perdendo a paciencia..

segue abaixo um exemplo do que estou precisando, mas que não está dando certo...

dm.qryquantidade_itens_vendidos.First;

    dm.qrydetalhe_produtos_vendidos.close;
    dm.qrydetalhe_produtos_vendidos.sql.Clear;
    while not dm.qryquantidade_itens_vendidos.Eof do
      begin
        with dm.qrydetalhe_produtos_vendidos do
          begin
            sql.Add('select Produtos.Codigo_Produto, Produtos.Nome, Produtos.Qtde_Maxima, Produtos.Qtde_Minima, Produtos.Estoque_Risco, Produtos.Qtde_Estoque from Produtos');
            sql.Add('where Produtos.Codigo_Produto = :Produto');
            Parameters.ParamByName('Produto').Value:= DM.qryquantidade_itens_vendidos.FieldByName('Codigo_Produto').AsString;
          end;
          dm.qryquantidade_itens_vendidos.Next;
      end;
      dm.qrydetalhe_produtos_vendidos.open;

ou seja, essa query qryquantidade_itens_vendidos tem umas informações sobre produtos vendidos... e essa qrydetalhe_produtos_vendidos vai pegar todos os produtos que estão na qryquantidade_itens_vendidos, pegar os seus dados na tabela de produtos e jogar para a query detalhe_produto_vendidos que consequentemente está ligada a um dbgrid que irá mostrar os dados........ só que, quando eu dou um .open, ele abre pra mim apenas o último registro, e não todos....

como faria pra resolver isso? pegar os produtos da 1 query e pegar seus dados na tabela de produtos e jogar pra outra query e quando eu abrisse, abrisse com todos os dados:????

espero que tenham entendido o que quero dizer rsrsrs....

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde amigo

o ideal neste caso é você ir pesquisando e inserindo em uma tabela temporaria depois só dar um select * from temporario e mostrar no grid.

pois da maneira que você esta fazendo você pesquisa e depois pesquisa outra coisa na mesma query ai só irá mostrar o último mesmo.

caso você ainda não sabe como criar temporario e inserir dados ne posta ai que nos te ajudamos ..

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

dm.qryquantidade_itens_vendidos.First;

dm.qrydetalhe_produtos_vendidos.close;

dm.qrydetalhe_produtos_vendidos.sql.Clear;

while not dm.qryquantidade_itens_vendidos.Eof do

begin

with dm.qrydetalhe_produtos_vendidos do

begin

sql.Add('select Produtos.Codigo_Produto, Produtos.Nome, Produtos.Qtde_Maxima, Produtos.Qtde_Minima, Produtos.Estoque_Risco, Produtos.Qtde_Estoque from Produtos');

sql.Add('where Produtos.Codigo_Produto = :Produto');

Parameters.ParamByName('Produto').Value:= DM.qryquantidade_itens_vendidos.FieldByName('Codigo_Produto').AsString;

end;

dm.qryquantidade_itens_vendidos.Next;

end;

dm.qrydetalhe_produtos_vendidos.open;

Observe que a cada registro lido voce está adicionando a sua SQL várias linhas de select antes de ativar a mesma e com certeza esta dando erro.

como faria pra resolver isso? pegar os produtos da 1 query e pegar seus dados na tabela de produtos e jogar pra outra query e quando eu abrisse, abrisse com todos os dados:????

Um bom sistema começa com a definição correta de um banco de dados ( tabelas , registros, campos, indices, referencias entre campos de tabelas...etc ) sem isso o sistema fracassa

ex: 1 produto pode ter N descrições

produto: Pimentão

descrição: Verde

produto: Pimentão

descrição: Vermelho

produto: Pimentão

descrição: Amarelo

Para cada descrião pode haver um preço diferente

produto: Pimentão

descrição: Verde

preço: R$ 1,50 Kg

produto: Pimentão

descrição: Vermelho

preço: R$ 2,00 Kg

produto: Pimentão

descrição: Amarelo

preço: R$ 3,00 Kg

Para cada produto ( descriçao ) vendido haverá as quantidades da compra do produto, da venda e do estoque final

produto: Pimentão

descrição: Verde

preço: R$ 1,50 Kg

quant_Compra: 10 kg

quant_Venda: 9 Kg

quant_Estoq: 1 Kg

produto: Pimentão

descrição: Vermelho

preço: R$ 2,00 Kg

quant_Compra: 10 kg

quant_Venda: 5 Kg

quant_Estoq: 5 Kg

produto: Pimentão

descrição: Amarelo

preço: R$ 3,00 Kg

quant_Compra: 10 kg

quant_Venda: 6 Kg

quant_Estoq: 4 Kg

A pergunta é: como montar uma sql que me traga o nome do produto, todas as descrições desse produto e todos os seus respectivos valores para que eu possa vizualizar em um dbgrid ?

Experimente raciocinar em cima deste problema ... se conseguir estará a um passo da solução para resolver o seu

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...