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 

While no tabela e trazer todos registros = 1, não consigo

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


Registrado: Quinta-Feira, 9 de Setembro de 2010
Mensagens: 355
Localização: Santo Anotnio de Jesus-BA

MensagemEnviada: Qui Jan 19, 2012 8:40 am    Assunto: While no tabela e trazer todos registros = 1, não consigo Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
rvercesi
Mestre
Mestre


Registrado: Segunda-Feira, 29 de Novembro de 2010
Mensagens: 912
Localização: Curitiba / PR

MensagemEnviada: Qui Jan 19, 2012 8:47 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Jan 19, 2012 8:51 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
kleberibm
Membro Junior
Membro Junior


Registrado: Quinta-Feira, 9 de Setembro de 2010
Mensagens: 355
Localização: Santo Anotnio de Jesus-BA

MensagemEnviada: Qui Jan 19, 2012 8:53 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
kleberibm
Membro Junior
Membro Junior


Registrado: Quinta-Feira, 9 de Setembro de 2010
Mensagens: 355
Localização: Santo Anotnio de Jesus-BA

MensagemEnviada: Qui Jan 19, 2012 9:15 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
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