Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2006
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
Problema en bucle

Hola a todos, no sabia si poner aki el post o en otro hilo porque es de tablas y de programacion general. El codigo es este:
Código Delphi [-]
        with DataModule_Fact_Albar do 
        begin 
            while not(Query_Alb.Eof) do 
            begin 
                Query_Alb.DisableControls; 
                Query_Lin_Alb.First; 
                while not(Query_Lin_Alb.Eof) do 
                begin 
                    Query_Lin_Alb.DisableControls; 
                    Query_Lin_Resum_Alb.Append; 
                    Query_Lin_Resum_AlbNUM_ALB.Value:=Query_Resum_AlbNUM_ALB.Value; 
                    Query_Lin_Resum_AlbCANTIDAD.Value:=Query_Lin_AlbCANTIDAD.Value; 
                    Query_Lin_Resum_AlbCONCEPTO.Value:=Query_Lin_AlbCONCEPTO.Value; 
                    Query_Lin_Resum_AlbPRECIO_UNIDAD.Value:=Query_Lin_AlbPRECIOUNIDAD.Value; 
                    Query_Lin_Resum_AlbTOTAL.Value:=Query_Lin_AlbTOTAL.Value; 
                    Query_Lin_Resum_Alb.Post; 
                    Query_Lin_Alb.EnableControls; 
                    Query_Lin_Alb.Next; 
                end; 
                Query_Alb.EnableControls; 
                Query_Alb.Next; 
            end; 
        end;

Me explico, el codigo me coge varios albaranes y me va recorriendo su cuerpo para hacerme una convercion de "Varios Albaranes"" --> "A uno Solo", esto me lo hace bien. EL problema viene a que quiero que cuando me recorre lso albaranes me vaya poniendo a "SI" el campo convertido del albaran, para que cuando realize conversiones posteriores solo me coja los "Albaranes NO Convertidos", por lo que añado el codigo:

Código Delphi [-]
DataModule_Fact_Albar.Query_AlbConvertido.value:='SI';

Pero no me lo hace bien, me pone a "SI", el 1º y 3º y el 2º lo deja a "NO" , he probado a poner en todas partes del bucle, incluso lo puesto 2 y 3 veces xDDD y siempre me hace lo mismo, y además de no ponerme a "SI" todos los "albaranes convertidos", la conversion tambien la hace mal y sin esa linea convierte bien

Estoy un poco desesperado porque nose ya que probar jeje.

Gracias de antemano y Salu2!!!

Última edición por roman fecha: 17-01-2006 a las 20:16:39. Razón: Cambiar etiqueta [code] por [delphi] ¡Para algo las hicimos!
Responder Con Cita
  #2  
Antiguo 18-01-2006
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Buenas!

Yo diría que el bucle se vuelve un poco loc con tantas vueltas que le das. Lo mejor es hacerlo pasito a pasito: Primero recorres el bucle sumando, y lo que quieras, y después hacer una sentencia SQL de actualización con el mismo where para cambiar a SI el campo.

Espero que te sirva

Edu
Responder Con Cita
  #3  
Antiguo 18-01-2006
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
No creo ke sea por eso porque incluso he probado solo:

Código:
        DataModule_Fact_Albar.QueryAlb.first;
        DataModule_Fact_Albar.Query_AlbConvertido.value:='SI';        with DataModule_Fact_Albar do 
        begin 
            while not(Query_Alb.Eof) do 
            begin 
                DataModule_Fact_Albar.Query_AlbConvertido.value:='SI'; 
               Query_Alb.Next;
 
            end; 
        end;
Solo eso, sin nada mas para ver si salia y me hace lo mismo, uno si y otro no, y ya nose que probar.

Gracias y perdon pero no tengo internet y tengo que venir a un ciber.

Salu2!!!
Responder Con Cita
  #4  
Antiguo 19-01-2006
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
¿Por qué no lo ejecutas en modo debug y pones un punto de interrupción al principo del bucle para ejecutarlo paso a paso y ver por donde va el programa?. Puedes poner una variable de prueba que recoja el identificador de la linea para ver los valores que va tomando y las líneas por las que se va pasando en el bucle.

¿La query recoge todas las líneas que tu crees que debe tener?

Comprueba esto y ya nos contarás.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)

Última edición por Ivanzinho fecha: 19-01-2006 a las 09:22:18.
Responder Con Cita
  #5  
Antiguo 19-01-2006
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Prueba esto:

Código Delphi [-]
DataModule_Fact_Albar.QueryAlb.first;
with DataModule_Fact_Albar do
begin 
  • while not(Query_Alb.Eof) do begin
  • Query_AlbConvertido.Edit;
  • Query_AlbConvertido.value:='SI';
  • Query_AlbConevertido.post;
    • Query_AlbConvertido.Next;
end; end;

Un saludo

Edu
Responder Con Cita
  #6  
Antiguo 19-01-2006
CarmaZone CarmaZone is offline
Miembro
 
Registrado: mar 2005
Posts: 59
Poder: 20
CarmaZone Va por buen camino
Hola a todos y gracias por vuestras respuestas.

* Query_AlbConvertido.Edit;

* Query_AlbConvertido.value:='SI';

* Query_AlbConevertido.post;

Esto tambien lo probre para asegurarme de que me guardaba el valor con un post y tambien antes lo puse en modo edicion, aunque volvere a probar jeje. La query si me recoge bien los valores ya que tengo mas cosas hechas y nunca me ha dado problema de este tipo, las pruebas las he hecho sobre 3 albaranes, he peusto solo 3 albaranes a NO y solo me convierte el 1º y 3º, probare paso a paso y a ver si se me ocurre algo más porque lo veo muy raro ya que "creo" que el bucle esta bien, es muy simple XDDDDD.

Gracias de nuevo por vuestras respuestas y si os ocurre algo más será bien agradecido :P

Ya os contare. Salu2!!!
Responder Con Cita
  #7  
Antiguo 20-01-2006
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
A mi me pasara una vez algo parecido, realice un debug paso a paso y descubrí que era porque tenía una instrucción donde pasaba al siguiente registro (ahora no me acuerdo cual era), por lo que quité el query.next y me funcionó correctamente.

Puedes quitar el Query_AlbConvertido.Next y probar, aunque si no es de eso te entrará en un bucle infinito.

De todos modos aunque te funciones así te recomiendo que vayas paso a paso mirando por donde va el programa para ver porque en el segundo albarán no te pasa por la línea Query_AlbConvertido.Value = SI

Ya nos contarás

Un saludo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con ComponentEditor y TStringList Sonic C++ Builder 0 17-01-2006 08:36:44
Problema con los Post_Events Aldo Firebird e Interbase 1 21-10-2005 12:58:10
Problema cerrando un thread tortelini Varios 0 14-03-2005 15:21:16
problema con bucle while do acrophet Varios 1 16-09-2004 14:13:02
detener un bucle con un boton cancelar... dmariscal Varios 7 13-07-2004 12:52:47


La franja horaria es GMT +2. Ahora son las 23:51:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi