Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
RecordCount Vs Count (SQL)

Saludos

IBx,Firebird,D7

Algo curioso que aún no encuentro explicación:
Tengo un IBDataset con la sgte sentencia:
Código SQL [-]
Select codemp, nombre
from empleados
La cual podría arrojar
Código:
 Codemp   Nombre
  0001      Fulano
  0002      Suntano
....    ....
Esta tabla tiene 50 registros. En un JvDBGrid la acomodo para que solos se muestren 10 registro del total.
Con RecordCount me dice que solo tengo 10, pero si hago una consula SQL con Count, esta me dice que tengo los 50 registros.
Código SQL [-]
Select codemp, nombre, (select count(codemp) from empleados) as TRegs
from empleados

Me he dado cuenta que si arreglo el JvDBGrid a que me muestre 5, 15 o 8 registro, el RecorCount me arroja esa misma cantidad qeu muestro.
Alguién me puede explicar este comportamiento un tanto extraño.

Nt:Tengo otro formulario con IBDataSet y no pasa lo mismo, sumamente extraño esto
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #2  
Antiguo 09-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.051
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
select count(codigo) from tbclientes

Esto te devuelve el número de registros de la tabla.



Lo otro te devuelve el número de registros que han sido "traidos" en ese momento, si haces un "avanza página" (page dow), te traerá otros tantos para rellenar ese dbgrid y la cantidad de "recordcount" te devolverá los regitros de antes más los de ahora, sin embargo, si vas al último verás que te devuelve el número total de registros de la tabla.
Responder Con Cita
  #3  
Antiguo 09-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por Casimiro Notevi
Lo otro te devuelve el número de registros que han sido "traidos" en ese momento, si haces un "avanza página" (page dow), te traerá otros tantos para rellenar ese dbgrid y la cantidad de "recordcount" te devolverá los regitros de antes más los de ahora, sin embargo, si vas al último verás que te devuelve el número total de registros de la tabla.
En eso tienes razón pero....
Cita:
Empezado por vtdeleon
Nt:Tengo otro formulario con IBDataSet y no pasa lo mismo, sumamente extraño esto
Como dije anteriormente, en otro formulario, el Recordcount si me devuelve el total de registro "Real", teniendo JvDbGrid acomodados
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 09-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.051
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puede ser que ese tipo de grid lea todos los registros para luego tenerlo en memoria y poder ordenar por cualquier campo, filtar, etc. Eso es algo que hacen algunos componentes dbgrid, algo que no es muy recomendable, pero lo hacen.
Responder Con Cita
  #5  
Antiguo 09-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

También con un DBGrid sucede lo mismo, si no tnego DBGRID, el recordcount devuelve 1.

//No me importa usar Count (es mejor), pero es un caso extraño ya que en un formulario con los mismos componentes da el valor bien y en otro no.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 09-10-2005 a las 21:51:28.
Responder Con Cita
  #6  
Antiguo 09-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.051
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Alomejor alguna propiedad del dataset, ¿seguro que son exactamente iguales?
Responder Con Cita
  #7  
Antiguo 09-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Segurísimo

Lo último que he hecho es copiar el mismo componente al otro, y tiene el mismo comportamiento.

En que afectara el formultario a un Dataset?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #8  
Antiguo 09-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Al romperme la cabeza con el teclado (por los abundantes códigos), creo que lo que debe haber algún método(IsEmpty, Prerare o algo parecido) que recorre el DataSet y entonces me dá el total de registro real.
En conclusión, Casimiro Notevi tiene razón
Gracias Casimiro
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 10-10-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Cita:
Eso es algo que hacen algunos componentes dbgrid
es la diferencia en los grids q trabajan en modo virtual, significa q no tienen datos propios y sus datos los traen de otra fuente, por eso el filtro o el sort tiene q hacerse en esa otra fuente, y los q cargan todos los datos para manejarlos con el quantumgrid, y asi se tiene los datos duplicados, en el dataset y el grid, pero hay mas funcionalidad..

Cita:
creo que lo que debe haber algún método(IsEmpty, Prerare o algo parecido) que recorre el DataSet
o simplemente el metodo locate, o los campos lookup;
__________________
¿Microsoft? No, gracias..
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


La franja horaria es GMT +2. Ahora son las 03:43:35.


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