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 27-06-2007
Val Val is offline
Miembro
 
Registrado: feb 2007
Posts: 51
Poder: 18
Val Va por buen camino
Recordcount no me cuenta bien

Hola!

Tengo una aplicación con Firefox 2.0 y acceso al mismo mediante dbExpress. El caso es que al arrancar (en el FormCreate) relleno un DBGrid con los datos de un IBQuery y justo tras el open() del query en un TLabel muestro el número de registro del DBGrid mediante la propiedad RecordCount del query y si hay registros me muestra un 1 haya los registros que haya.

Más adelante si cambio el query y hago lo mismo ya me funciona y me muestra el valor correcto.

¿A qué se puede deber?

Gracias
Responder Con Cita
  #2  
Antiguo 27-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Val
Tengo una aplicación con Firefox 2.0
¿Y funciona bien como Base de Datos? Y yo que sólo lo usaba para navegar...

Prueba a lanzar una consulta con COUNT.
Posiblemente al abrir no se esté trayendo todos los datos y por eso no devuelve bien el Count. Además hacerlo con SQL+COUNT es más eficiente que usar RecordCount.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 27-06-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por Neftali
¿Y funciona bien como Base de Datos? Y yo que sólo lo usaba para navegar...
jajajaja, esto esta para el de humor
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 27-06-2007
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Cita:
Empezado por Val
Tengo una aplicación con Firefox 2.0 y acceso al mismo mediante dbExpress. El caso es que al arrancar (en el FormCreate) relleno un DBGrid con los datos de un IBQuery y justo tras el open() del query en un TLabel muestro el número de registro del DBGrid mediante la propiedad RecordCount del query y si hay registros me muestra un 1 haya los registros que haya.

¿A qué se puede deber?
Se debe a que la propiedad RecordCount del DataSet,
sólo refleja el valor correcto si llegas hasta el final del conjunto de datos.

Prueba a hacer un DataSet.Last antes de mostrar el valor de recordcount en el label.

Aunque la sugerencia de Neftalí es mucho mas eficiente.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #5  
Antiguo 27-06-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Cita:
Empezado por defcon1_es
Se debe a que la propiedad RecordCount del DataSet,
sólo refleja el valor correcto si llegas hasta el final del conjunto de datos.
Perdón por la intromisión, pero creo que eso no es del todo cierto.
En Bases de datos tipo Paradox y similares, funciona bien sin necesidad del Last.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #6  
Antiguo 27-06-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
La verdad tengo entendido q solo falla con las conexiones ADO pero por un principio logico que la conexion no trae todos los registros solo hasta qe lso necesite
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 27-06-2007
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Con FireBird e IBX me fallaba, y no se por qué, pero como dice defcon1_es, poniendo DataSet.Last funciona, aunque quizás sea mejor lo que te indica Neftali.
Responder Con Cita
  #8  
Antiguo 27-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por fidel
...poniendo DataSet.Last funciona, aunque quizás sea mejor lo que te indica Neftali.
A esto me refería; con esto obligas a recorrer todo el DataSet y a traerte todos los datos.

Con una simple consulta SQL del tipo COUNT será más eficiente:

Código SQL [-]
// Importante hacerlo por el campo clave (PK) que no tiene duplicados 
// -será más óptimo-
SELECT COUNT (CampoClave) AS CUANTOS FROM TABLA
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 27-06-2007
Val Val is offline
Miembro
 
Registrado: feb 2007
Posts: 51
Poder: 18
Val Va por buen camino
Gracias por las respuestas. En efecto haciendo Last antes del Recordcount ya me cuenta bien los registros, la pega es que en el DBGrid se me selecciona el último registro lo que no es demasiado lógico. Asi que me quedo con el "select count" que si además es más eficiente mejor que mejor

Gracias a todos.

PD: Se me fue la pinza con lo del Firefox, es lo que pasa cuando no has dormido una mierda :P
Responder Con Cita
  #10  
Antiguo 27-06-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
La diferencia entre el select count y el last es que el primero te lo devuelve el servidor, al contrario del last que obligas a l cliente a tener todos los registros para contarlos
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 27-06-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Cita:
Empezado por Val
PD: Se me fue la pinza con lo del Firefox, es lo que pasa cuando no has dormido una mierda :P
Estamos igual. Yo ni me habia fijado en la errata. He tenido que leer dos veces la respuesta de Neftalí para enterarme.


Saludos
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
Lo bien hecho bien parece. marcoszorrilla Humor 2 13-03-2008 21:13:21
Cuenta bien! roman Humor 9 25-04-2006 16:19:14
Problema con un RecordCount Lucciano Conexión con bases de datos 4 07-04-2006 15:40:54
Porque no realiza bien el Cmmit o bien un ApplyUpdates(-1)? Luis Alberto Varios 6 14-12-2005 22:44:25
RecordCount en Interbase ingacg Conexión con bases de datos 2 13-01-2004 21:20:43


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


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