FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
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. |
#22
|
|||
|
|||
totalmente de acuerdo orodriguezca, pero ya estas hablando del funcionamiento interno de un componente para poder lograr hacer algo, eso no es lo que pregunto dany2014, el solo quiere saber como "Contar la cantidad de registros de un dbgrid", la respuesta es con la propiedad recordcount del tdataset, asi de sencillo. Que internamente el componente haga x ó y cosas para llegar al resultado que se obtiene de llamar a la propiedad recordcount debe ser transparente para el usuario, eso no le interesa. Imaginate que para cada pregunta que hagan los foristas adicional a decirles con que propiedades o métodos pueden lograrlo, tengas que explicar como funciona internamente cada una de esas propiedades o métodos, no creo que eso sea necesario.
Pero en fin, creo que ya se ha desvirtuado el origen de todo esto que fue la pregunta inicial de dany2014, espero no lo hayamos confundido con todo esto, de mi parte estoy a sus ordenes por si necesita que se le facilite un ejemplo de lo que quiere hacer si es que se le complica. Saludos |
#23
|
||||
|
||||
Es que tampoco estás respondiendo correctamente a dany2014 porque no sabes qué componentes está usando, ni qué base de datos, ni nada.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 10-12-2014 a las 19:42:26. |
#24
|
|||
|
|||
Independiente de cual es la base de datos o del tipo de dataset lo correcto para determinar el número de registro es hacer:
Cita:
- Trabajando con ADO, ya sea en Delphi o Visual Basic 6, y configurando los cursores del lado del servidor, RecordCount devuelve cero y la consulta puede regresar 5 0 10 millones de registros. En estos casos si se deja que los cursores queden del lado del cliente la aplicación "estalla" por falta de memoria. Estos registros no se muestran ni se imprimen, simplemente se consolida información del Sistema de Producción en el Sistema Contable - Trabajando con DBExpress: TSQLQuery.RecordCount devuelve un valor erróneo. En este caso es necesario llegar hasta el último registro para saber cuantos son. - Con los componentes Interbase. |
#25
|
||||
|
||||
La forma correcta y segura de obtener los registros es contarlos:
|
#26
|
|||
|
|||
Cita:
|
#27
|
|||
|
|||
Aquí no funciona correctamente RecordCount
|
#28
|
|||
|
|||
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. |
#29
|
|||||||
|
|||||||
Buenas. Intentaré aportar mi granito de arena al tema.
Cita:
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:
Cita:
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:
Cita:
Cita:
Cita:
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. |
#30
|
|||
|
|||
Cita:
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. |
#31
|
|||
|
|||
HOla gente, muchas gracias por los datos aporatdos, me sirvio bastante y de hecho con recorcount, salio lo que deseaba, hice el recordcount, y lo almacene en tbedit, lo necesitaba por que la tabla de alumnos aprobados de un curso, y lo almacene la cant en otra tabla,..... una ultima consulta, si alguien tiene algun procedure para verificar que el dni que ingreso en un tbdedit sea del tipo correcto, osea '40.369741' sea correcto y cualquier otro que tenga un caracter que no sea numnerico se incorrecto x ej: 'PO1234RE' 'el num ingresado no es un dni'.... muchas gracias... este mundo delphi es bastante amplio me queda mucho por descrubir...
Última edición por Casimiro Notevi fecha: 11-12-2014 a las 23:54:22. |
#32
|
||||
|
||||
Preguntas distintas en hilos distintos.
También puedes buscar por los foros, que es un tema que se ha tratado infinidad de veces. Como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración |
|
|
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 |
|