Ajuda com laço de repetição

Delphi

16/06/2014

Prezados Colegas

Estou com um problema e gostaria de poder contar com a ajuda de voces.
Tenho uma tela de consulta que esta funcionando perfeitamente, os dados são apresentados
em um dbGrid (qryPedidos) : Pedidos, quando navego pelos registros um segundo dbGrid exibe
os itens (qryItens) : Itens
Com o código abaixo eu totalizo a consulta de pedidos (qryPedidos)
esta funcionando OK

tabAccess.open;
while not qryPedidos.eof do begin
///meus comandos estão OK......
vTotalVendas:=qryPedidos.fieldByName('valor').asFloat + vTotalVendas;
qryPedidos.next;
end;
Porem eu preciso gravar os itens em uma tabela access, qual a melhor forma de resolver isso?

while not qryPedidos.eof do begin
///meus comandos estão OK......
vTotalVendas:=qryPedidos.fieldByName('valor').asFloat + vTotalVendas;
qryItens.sql.clear;
qryItens.sql.add('select * from tab_Itens where ????? ');
qryItens.open;
while qryItens.eof do begin
tabAccess.append;
** comandos para gravar
tabAccess.post;
qryItens.next;
end;
qryPedidos.next;
end;

Acho que já deu nó nos neurônios,e nem consigo mais ver onde estou errando

Se puderem me ajudar a ver a luz, fico agradecido,,,

Abraços
Arildo Augusto

Arildo Augusto

Curtidas 0

Respostas

Mauricio Rodrigues

Mauricio Rodrigues

16/06/2014

Explica melhor.. o que você quer.

Pode usar master/detalhes.

Não vi .first nas query.
Vc deve estar usando TclientDateset, cria um campo virtual para somar os valores é mais rápido.
GOSTEI 0
Arildo Augusto

Arildo Augusto

16/06/2014

Caro

Não posso usar máster detail,,, a qryPedidos tem como origem SqlServer de outro sistema,e possui first sim,, é que eu simplifiquei o código

partindo o principio que eu já executei os comandos Sql,,,

qryPedidos.first;
while not qryPedidos.eof do begin
vTotalVendas:=qryPedidos.fieldByName('valor').asFloat + vTotalVendas;
qryPedidos.next;
end;

o Laço acima vai acumular o total do campo valor na variável vTotalVendas (não quero mexer nisso)

Algo do Tipo:

qryPedidos.first;
while not qryPedidos.eof do begin
vTotalVendas:=qryPedidos.fieldByName('valor').asFloat + vTotalVendas;
qryItens.sql.clear;
qryItens.sql.add('select * from tabItens where ????? ');
qryItens.open;
qryItens.first;
while qryItens.eof do begin
tabAccess.append;
** comandos para gravar
tabAccess.post;
qryItens.next;
end;
qryPedidos.next;
end;




O que eu gostaria é de popular uma tabela access dentro deste laço acima, usando objeto tTable mesmo, coisa simples
GOSTEI 0
Arildo Augusto

Arildo Augusto

16/06/2014

Prezados


Bom dia

Já conseguir achar a LUZ,,, a rotina estava em looping....

rs
GOSTEI 0
POSTAR