Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
kleberibm Membro Junior

Registrado: Quinta-Feira, 9 de Setembro de 2010 Mensagens: 355 Localização: Santo Anotnio de Jesus-BA
|
Enviada: Qui Jan 19, 2012 8:40 am Assunto: While no tabela e trazer todos registros = 1, não consigo |
|
|
Bom dia pessoal, estou precisando solucionar um pequeno problema usando o laço While.
Bom pessoal, 1º faço um select na tabela, localizo todos os registros que possue no vampo Devolvido o valor = 1, se sim, preciso jogar todos eles em outra tabela. Porem não está dando certo, o Laço não obedece, por favor, quem poder me ajudarem, ficarei muito grato.
segue o código.
with QrMaterialOrcado do
Begin
close;
sql.clear;
sql.add('Select * from MATERIALEMOBRA');
sql.add('where devolvido = ''1''');
open;
end;
IF QrMaterialOrcado.RecordCount > 0 THEN
BEGIN
QrMaterialOrcado.First;
WHILE QrMaterialOrcado.Eof DO
BEGIN
IF QrMaterialOrcado.FieldByName('Devolvido').AsString = '1' THEN
QrMaterialDevolvido.open;
QrMaterialDevolvido.Insert;
QrMaterialDevolvidoDEVOLVIDO_CODIGO.Value := QrObraDevolvidaDEVOLUCAO_CODIGO.Value;
QrMaterialDevolvidoDEVOLVIDO_MOVIMENTO.Value := QrObraOrcadasCODIGO.Value;
QrMaterialDevolvidoDEVOLVIDO_DATA_ORCADO.Value := QrObraOrcadasDATA.Value;
QrMaterialDevolvidoDEVOLVIDO_DATA_DEVOLUCAO.Value := DATE;
QrMaterialDevolvidoDEVOLVIDO_CODMATERIAL.Value := QrMaterialOrcadoCODMATERIAL.Value;
QrMaterialDevolvidoDEVULVIDO_MATERIAL.Value := QrMaterialOrcadoMATERIAL.Value;
QrMaterialDevolvidoDEVOLVIDO_QTDADE_ORCADO.Value := QrMaterialOrcadoQTDADE.Value;
QrMaterialDevolvido.Post;
QrMaterialDevolvido.Next;
END;
QrMaterialOrcado.First;
END;
Por favor quem poder me ajudar ficarei grato com qualquer idéia. |
|
Voltar ao Topo |
|
 |
rvercesi Mestre


Registrado: Segunda-Feira, 29 de Novembro de 2010 Mensagens: 912 Localização: Curitiba / PR
|
Enviada: Qui Jan 19, 2012 8:47 am Assunto: |
|
|
tenta trocar:
Código: | WHILE QrMaterialOrcado.Eof DO |
por
Código: | WHILE NOT QrMaterialOrcado.Eof DO |
Você tem que executar o loop enquanto NÃO FOR FINAL DO ARQUIVO! |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Jan 19, 2012 8:51 am Assunto: |
|
|
Bom dia
Além da observação do rvercesi, verifique os seguintes pontos:
- não é necessário o if para verificar se o campo Devolvido é igual a 1, pois a instrução SQL já faz esse filtro
- é melhor abrir QMaterialDevolvido antes de começar o looping while
- deve ser executado o Next na query QrMaterialOrcado, não na query QrMaterialDevolvido
Espero que seja útil.
_________________
Assinatura: Imoveis a venda em Suzano |
|
Voltar ao Topo |
|
 |
kleberibm Membro Junior

Registrado: Quinta-Feira, 9 de Setembro de 2010 Mensagens: 355 Localização: Santo Anotnio de Jesus-BA
|
Enviada: Qui Jan 19, 2012 8:53 am Assunto: |
|
|
rvercesi escreveu: | tenta trocar:
Código: | WHILE QrMaterialOrcado.Eof DO |
por
Código: | WHILE NOT QrMaterialOrcado.Eof DO |
Você tem que executar o loop enquanto NÃO FOR FINAL DO ARQUIVO! |
Amigo, foi isso mesmo que faltava. Como é bom ter sempre alguém mas experiênte para nos ajudar. Muito obrigado mesmo, ja estava desde ontem sem entender aonde estava o erro.. até amigo. |
|
Voltar ao Topo |
|
 |
kleberibm Membro Junior

Registrado: Quinta-Feira, 9 de Setembro de 2010 Mensagens: 355 Localização: Santo Anotnio de Jesus-BA
|
Enviada: Qui Jan 19, 2012 9:15 am Assunto: |
|
|
imex escreveu: | Bom dia
Além da observação do rvercesi, verifique os seguintes pontos:
- não é necessário o if para verificar se o campo Devolvido é igual a 1, pois a instrução SQL já faz esse filtro
- é melhor abrir QMaterialDevolvido antes de começar o looping while
- deve ser executado o Next na query QrMaterialOrcado, não na query QrMaterialDevolvido
Espero que seja útil.
Sim amigo foi muito ultil mesmo, pois com oestava, estava em um loop infinito, essa sua idéia foi fundamental para ficar funcionando perfeitamente. Muito obrigado cara, essa sua idéia de muitíssima importância.
_________________
Assinatura: Imoveis a venda em Suzano |
|
|
Voltar ao Topo |
|
 |
|