Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-12-2014
edgargh edgargh is offline
Miembro
 
Registrado: jun 2006
Ubicación: León, Guanajuato
Posts: 25
Poder: 0
edgargh Va por buen camino
Smile

ok, gracias por el ejemplo, ya me queda claro de donde vienen las discrepancias entre los 2 en eso del recordcount del adoquery.

Estamos hablando de distintos tipos de aplicaciones, a lo que puedo ver en tu ejemplo tu trabajas con aplicaciones de consola, yo no, yo trabajo con aplicaciones vcl. Asumí por la pregunta de dany2014 en la que hace referencia a un dbgrid y un dbedit que el trataba de generar una aplicación vcl, con componentes visuales de la paleta de herramientas de delphi que seleccionas y pegas en un formulario con propiedades por default que el programador no necesita configurar, solo el acceso a la base de datos en el componente adoconnection, la conexion en el adoquery y la sentencia de SQL ya sea en diseño o por código para acceder a los registros de la tabla alumnos que menciona, de tal forma que una vez abierto el adoquery, solo llamar a la propiedad recordcount de ese componente para obtener el numero de registros y visualizarlo en algún lugar.

No se nada de aplicaciones de consola, solo desarrollo aplicaciones vcl con bases de datos en el esquema cliente/servidor.

Una disculpa, entendí mal, retiro todo lo dicho.
Responder Con Cita
  #2  
Antiguo 11-12-2014
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: 19.439
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
Buenas. Intentaré aportar mi granito de arena al tema.

Cita:
Empezado por dany2014 Ver Mensaje
...lo que deseo es poder contar la cantidad de registros del dbgrid asociado a esa tabla
Antes de nada decir que para mi esto "no tiene sentido" estrictamente, si entendemos lo que es un DBGrid.
Para mi un DBGrid no es más que una ventana para ver determinados registros de una tabla. El grid en si, NO TIENE REGISTROS. Simplemente nos está mostrando unos cuantos. Cuando nos movemos arriba y abajo lo único que hacemos es mover la ventana para ver unos cuantos de los anteriores o unos cuantos de los que hay más abajo.

OTRO EJEMPLO:
Mirar un Grid es como mirar con una LUPA una hoja y preguntar ¿Cuantas lineas tiene la LUPA? Las líneas NO ESTÁN EN LA LUPA, siguen estando en la hoja. Si mueve la LUPA arriba y abajo veo líneas diferentes y si cambio de LUPA veo más o menos líneas, pero LA LUPA EN SI NO TIENE LINEAS, sólo las visualiza.


Dicho esto y espero que se haya entendido...

Cita:
Empezado por edgargh Ver Mensaje
si lo que necesitas es obtener el numero de registros de tu dbgrid, lo mas comun es hacerlo directamente a traves del dataset asociado (query o table).
Yo diría que es la única forma de hacerlo (no la más común). No tenemos un Grid.Count. Hablando siempre de DBGrid genérico. Tal vez haya casos particulares en los que exista algo así, pero eso no es común, ni recomendable creo.


Cita:
Empezado por edgargh Ver Mensaje
¿El funcionamiento de la propiedad recordcount de un TDataset en delphi depende del manejador de base de datos que se utilize?, no lo sabia, yo trabajo con sql server y funciona, ignoraba que con otros no. ¿Con que manejador de base de datos no funciona la propiedad recordcount de un Tdataset?
También de los componentes de conexión.
Por ejemplo habéis hablado de ADO. Estos componentes (realmente potentes) pueden trabajar en 2 modos. Utilizando "cursores cliente" y "cursores Servidor". Revisad las propiedades CursorLocation de TADOConnection, por ejemplo. No se pueden usar estas propiedades con todos los gestores, sino que dependen también del sistema al que nos estemos conectando. Por ejemplo, con SQL Server, se puede trabajar en ambos modos. Con bases de datos Access, sólo en "modo Cliente".

Cita:
Empezado por edgargh Ver Mensaje
Por ejemplo si trabajas con Tdatasets de ADO o DBExpress, que segun yo son los mas comunes y en los cuales puedes hacer la conexion con una infinidad de manejadores de bases de datos (incluyendo interbase), no tendrias el problema que mencionas
He de corregirte aquí. Tal y como he dicho antes, por ejemplo en ADO+SQL Server puedes trabajar en "modo cursor Server-side" y en ese caso las propiedades como Recordcount siempre devuelven -1. Es una forma de decirte que "no se están cargando todos los registros en memoria". Es estos casos tal y como se ha comentado, la fiorma es utilizar un SELECT...COUNT.

Cita:
Empezado por ElDioni Ver Mensaje
...me sale el número total de registros que hay en la consulta realizada.
como no he trabajado con otras bases de datos para mi esto también es lo normal.
Utilizando SGBD (frente a las Bases de Datos de escritorio) el comportamiento "normal" creo que sería el otro. No es aceptable que un SGBD devuelva todos los registros o los cargue todos en una tabla al hacer un SELECT.

Cita:
Empezado por edgargh Ver Mensaje
Te consta lo que dices?, lo haz hecho con un adoquery por ejemplo?, no te ha funcionado el recordcount?
Como he dicho, dependiendo de cómo esté configurado y contra qué BD/SGBD devolverá -1 o el número correcto de registros.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Desconozco cómo trabajan los componentes ADO que estás usando.
E insisto en que un query de consulta a una tabla no devuelve el número de registros que cumplen la condición, salvo que vayas al último.
En el caso de ADO, puede ser que ambos tengáis razón. Como he dicho permite comportamientos diferentes.

Un saludo.
__________________
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 11-12-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 18
orodriguezca Va por buen camino
Cita:
Empezado por edgargh Ver Mensaje
ok, gracias por el ejemplo, ya me queda claro de donde vienen las discrepancias entre los 2 en eso del recordcount del adoquery.

Estamos hablando de distintos tipos de aplicaciones, a lo que puedo ver en tu ejemplo tu trabajas con aplicaciones de consola, yo no,...

edgargh, No trabajo con aplicaciones de consola, lo mio también es form/vcl Cliente-Servidor, esto solo fue una forma cómoda de colocar en un solo sitio los elementos en cuestión para el ejemplo. Pero estoy de acuerdo contigo, el comportamiento por defecto de un TADOQuery (cursores del lado del cliente) devuelve el valor esperado en la propiedad RecordCount.


Neftali, excelente resumen, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Contar Registros KAYO SQL 10 22-07-2010 19:47:43
Contar El Numero De Registros Mostrados En Un DBGRID alexey1982 Tablas planas 2 13-06-2008 00:52:35
Contar Cantidad de Items en un ComboBox grone35 Varios 2 07-09-2006 03:06:43
Contar Registros Roilo SQL 10 18-07-2006 21:20:24
Contar Cantidad de ReadOnly brandolin OOP 4 23-01-2006 18:34:12


La franja horaria es GMT +2. Ahora son las 20:48:02.


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