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)
-   -   Registros incompletos (https://www.clubdelphi.com/foros/showthread.php?t=32093)

jm.cg 26-05-2006 03:51:13

Registros incompletos
 
Hola!!

Esta vez tengo un problema con un DBGRid y con la impresion. Tengo una BD en Firebird e hice una aplicacion para registrar datos y poder consultarlos.

Una tabla tiene unos 79 registros, pero cuando los pongo en el DBGrid solo aparecen 60, no más. He verificado que los datos se encuentren en la BD y ahi estan. Además, tengo otro ZQuery (el componente Zeos) donde pido el total de registros en esa tabla y me da el numero total de registros(79).

Por cierto, si deseo imprimir, pasa algo parecido que con el DBGrid, solo imprime 60 registros. Que tengo que hacer para que el DBGrid me muestre todos los registros y no solo 60?? Y que hago para poder imprimir todos los registros???

Espero que puedan ayudarme y, de antemano, gracias.


Saludos

vtdeleon 26-05-2006 05:06:16

Saludos

Hay sintomas , como que, no encajan o no entiendo bien.

Pediste el RecordCount del Dataset? o Los registros los contaste? uno a uno?

Si utilizas sentencias (no Ttables) para la consulta, por lo general Delphi solo traes una parte de la informacion, no toda, para minimizar el flujo de datos en red.

jm.cg 26-05-2006 21:27:07

Ok, voy de nuevo, con mas detalle. No utilice el record count. El numero de registros lo veo con una sentencia SQL:
Código SQL [-]
SELECT COUNT(*)
FROM INVENTARIADOS

Ahi me dice que hay 79 registros. Por otro lado, para mostrar todos los registros de esa tabla en un DBGrid, utilizo otra sentencia SQL. Mas o menos asi (no tengo el programa a la mano):

Código SQL [-]
SELECT I.ID, I.NO_SERIE, I.MODELO, M.MARCA, N.DESCRIPCION, E.NOMBRE||E.APELLIDO AS RESGUARDO
FROM INVENTARIADOS I, MARCAS M, NOMBRES N, EMPLEADOS E
WHERE I.CLAVE=M.CLAVE AND I.CODIGO=N.CODIGO AND I.NO_EMP=E.NO_EMP

Como ves no hago otra cosa mas que unir unas tablas para mostrar la información pero no pongo un filtro de ningun tipo como para que no muestre todos los registros. Lo que pasa es que el DBGrid solo muestra los primeros 60 registros (sea cual sea) y del 61 en adelante, nada. Lo mismo pasa con el Quick Report, solo imprime los primeros 60 registros. Es mas, si hago la misma consulta dentro del ISQL de Firebird, aparecen todos los registros, los 79.

Espero que asi haya quedado mas claro y puedan ayudarme. Sera alguna propiedad de algun componente lo que tengo que modificar?

Por favor, ayuda. Y gracias por adelantado...

roman 26-05-2006 22:52:44

¿Qué pasa si haces un?

Código SQL [-]
select I.ID, I.NO_SERIE, I.MODELO
from INVENTARIADOS I

¿Te muestra todos? Porque si es así, entonces debe haber registros en INVENTARIADOS que no tengan valor correspondiente en alguna de las tablas que unes. Usa un OUTER JOIN para que la consulta incluya también los registros que no tengan correpondencia.

// Saludos


La franja horaria es GMT +2. Ahora son las 00:31:38.

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