| 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 |  | 
	
		|  | 
	
		|  |