Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   error al recorrer un query (https://www.clubdelphi.com/foros/showthread.php?t=19274)

jorgeganc 09-03-2005 15:51:34

error al recorrer un query
 
chicos recorro un query de la forma for....to recordcount do y se saltea egistros no se que le pasa ya que con cada uno de estos registros tengo q hacer algo en otra tabla ,y obviamente me salae errores de eof
alguien sabe algo de esto?

saludos gracias

marcoszorrilla 09-03-2005 15:55:34

Por qué no pones el código con el que recorres los registros de la consulta, en realidad puedes utilizar un bucle con:
Código Delphi [-]
 While not MiQuery.Eof do
 begin
 ....
 MiQuery.Next;
 end;
Un Saludo.

jorgeganc 10-03-2005 18:00:04

como recorrer..
 
si en realidad lo recorro con

for x:=0 to q.recordcount -1 do
o con el while

pero el problema es con algo relacionado con el :current record,
salta el error que no respeta el eof o bof
estube buscando y hay algo raro con esto q le pasa a un monton de gente a mi la primera es como que la info no esta secuencial y salta d eun lado a otro

marcoszorrilla 10-03-2005 18:03:13

Mira lo mejor es que visualices la consulta en una rejilla y despues ejecutas el bucle, así iras viendo como se mueven los registros y que es lo que ocurre.

Un Saludo.

pijo 11-03-2005 11:23:09

Yo tengo una pregunta
 
Haces algo dentro del bucle que implique esta misma consulta? Ya sea un locate, delete, post, etc...
Yo de todas formas siempre prefiero recorrer el resultado de una consulta tal i como dice marcoszorrilla con un while not .eof do.

ánimos

Lepe 11-03-2005 12:11:28

Segun tengo entendido solo algunos Datasets tienen implementado el RecordCount, es más si miras la implementación de Recordcount en la clase Tdataset, verás que devuelve -1.

Entonces dependerá de qué tipo de tablas uses y de si implementa el recordcount o no.

Para subsanar el error, simplemente hazlo como te ha dicho Marcos.
Cita:

pero el problema es con algo relacionado con el :current record
Asegurate de estar en un registro correcto. query.First, query.Last segun te convenga, justo antes del bucle while.

Advertencia: Si estas borrando registros, no uses query.Next, el método tabla.Delete ya actualiza la posición.

Saludos


La franja horaria es GMT +2. Ahora son las 18:09:16.

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