Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-06-2011
Ignacio Gentile Ignacio Gentile is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 15
Poder: 0
Ignacio Gentile Va por buen camino
Problema Al Recorrer Tabla

Buenos días.

Mi problema es que al recorrer una tabla (con un while) luego de leer el segundo registro no avanza más y a partir de ahi los valores que obtiene son siempre los mismos..

Este es el código:
Código Delphi [-]
while not (frmTablas.tblSucursal.Eof) do
begin
   nuevoItem.id := frmTablas.tblSucursal.FieldValues['cod_sucursal'] ;
   nuevoItem.Descripcion:=frmTablas.tblSucursal.FieldValues['descripcion_sucursal'];
   bandera := ValidarSucursales(nuevoItem.id,codigo);
   if bandera = 1 then
      begin
         cmbSucursal.Items.AddObject(nuevoItem.Descripcion, nuevoItem) ;
      end;
   frmTablas.tblSucursal.Next;
end;
Ejemplo: Al entrar al ciclo, nuevoItem.id toma el valor 1. Luevo del frmTablas.tblSucursal.Next el valor 2 y hasta ahi está bien; pero a partir de ahi el siguiente valor sigue siendo 2 y entra en un bucle del cual no sale..Lo mismo sucede si en vez del while... uso un
for i:=0 to frmTablas.tblSucursal.RecordCount-1..en este caso no entra en un bucle pero después de la segunda lectura todas las lecturas dan lo mismo, cuando en la base de datos son diferentes.

Alguien me podría ayudar ya que no encuentro el error..Muchas gracias..

Última edición por ecfisa fecha: 28-06-2011 a las 14:37:25. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #2  
Antiguo 28-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Ignacio.

Te agradeceríamos que cuando incluyas código Delphi, lo encierres entre las etiquetas [delphi] [/delphi]

La explicación sobre el uso de las etiquetas vB, la tenés aquí .

Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 28-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

No noto nada en tu código que pueda provocar ese comportamiento a excepción de la función ValidarSucursales.
Sería bueno poder ver el código de la misma.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 28-06-2011
Ignacio Gentile Ignacio Gentile is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 15
Poder: 0
Ignacio Gentile Va por buen camino
Código Delphi [-]
 function TfrmElegirEmpresa.ValidarSucursales(sucursal,empresa:integer): integer;
var id_sucursal,id_empresa,bandera:integer;
begin
   bandera := 0;
  frmTablas.tblUsuarioempresa.First;
  while not frmTablas.tblUsuarioempresa.Eof do
    begin
      id_sucursal:= frmTablas.tblUsuarioempresa['cod_sucursal'];
      id_empresa := frmTablas.tblUsuarioempresa['cod_empresa'];
      if (id_sucursal = sucursal) and (id_empresa=empresa) then bandera := 1;
      frmTablas.tblUsuarioempresa.Next;
    end;
  ValidarSucursales := bandera
end;

ese es el codigo de la función..No tiene nada raro, solo recibe dos parámetros y recorre una tabla..En caso de que el elemento que está leyendo concuerde con esos parámetros devuelve 1.
Responder Con Cita
  #5  
Antiguo 28-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Podrías hacer la siguiente prueba, anulando la línea del condicional.:
Código Delphi [-]
  while not (frmTablas.tblSucursal.Eof) do
  begin
    nuevoItem.id := frmTablas.tblSucursal.FieldValues['cod_sucursal'] ;
    nuevoItem.Descripcion:=frmTablas.tblSucursal.FieldValues['descripcion_sucursal'];
   // if ValidarSucursales(nuevoItem.id,codigo) = 1 then
       cmbSucursal.Items.AddObject(nuevoItem.Descripcion, nuevoItem);
    frmTablas.tblSucursal.Next;
  end;
Si los datos de la tabla están correctos deberían cargarse todos los items en el combo e indicaría que no carga más items por no cumplirse la condición en ValidarSucursales.

De repetirse el problema, habría que revisar los valores de la tabla.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
recorrer una tabla de una bd en access sarias24 Varios 26 02-11-2010 22:26:09
recorrer tabla detalle teclilla OOP 1 02-04-2008 15:07:13
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 13:04:34
recorrer tabla acrophet Conexión con bases de datos 7 30-04-2004 00:03:06
Crear y recorrer una tabla magm2000 MS SQL Server 3 09-02-2004 19:43:34


La franja horaria es GMT +2. Ahora son las 20:05:27.


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