![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() hola.
comop puedo hacer pasa conocer cuantos registros obtengo en un select en un stored procedure en delphi hago una consulta
¿en firebird como se puede hacer lo mismo? ¿un bucle por los registros devuelto y obtener la cantidad de registros? gracias |
#3
|
||||
|
||||
Imagino que los motores hacen esto mismo cuando ejecutas la SQL que te ha puesto Ñuño, pero yo por costumbre suelo hacer una cosa asi:
__________________
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. |
#4
|
||||
|
||||
Creo que preguntas como hacer lo que ejemplificas dentro de un Stored Procedure en Firebird.
Si fuera en Delphi, en casos como el que presentas y no averiguo cuantos hay. Recorro hasta llegar al final con un WHILE
Última edición por duilioisola fecha: 14-11-2014 a las 12:27:09. |
#5
|
||||
|
||||
|
#6
|
||||
|
||||
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
||||
|
||||
Sí, pero es que dice "desde delphi" y hace un bucle desde inicio hasta el final.
Desde delphi también puede hacer el count, desde luego.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
|||
|
|||
A eso me refirero todo en Stored procedure de firebird yo le llamo PL/SQL pero me han dicho que en firebird no se llama asi. solo en oracle.
duilioisola no sabia que con un bucle for se podia recorrer los resultados de una consulta. Si Roman, con un count(*) obtengo la cantidad de registros, lo acabo de probar. gracias |
#10
|
||||
|
||||
hola,
es más eficiente hacer count(1) que count(*) a efectos de trabajo del motor de bbdd. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#11
|
||||
|
||||
Cita:
![]() ( Gracias por desasnarme ![]() Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#12
|
||||
|
||||
Siempre uso un campo clave, ejemplo: count(id)
Pero nunca había visto count(1) ¿qué hace exactamente?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#13
|
||||
|
||||
Cita:
Código:
32934 fetches, 0 marks, 692 reads, 0 writes. 0 inserts, 0 updates, 0 deletes, 48 index, 15698 seq. Delta memory: 21436 bytes. Total execution time: 0.156s
Código:
32760 fetches, 0 marks, 0 reads, 0 writes. 0 inserts, 0 updates, 0 deletes, 0 index, 15698 seq. Delta memory: 96 bytes. Total execution time: 0.031s ![]() Edito: Obtuve el mismo resultado usando COUNT(0) (0.031s) y una diferencia menor a COUNT(*), usando COUNT(ID) (0.047s) .
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-11-2014 a las 22:45:24. |
#14
|
||||
|
||||
__________________
El malabarista. |
#15
|
||||
|
||||
Cita:
Pues así como puedo poner como constante un numero, también puedo contar cuantas veces sale dicha constante o sumarla con un Sum(1)
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#16
|
||||
|
||||
COn este procedimiento puedo en cualquier momento saber cuantos registros tengo o decir en que registro voy de todos los que tengo
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" Última edición por RONPABLO fecha: 15-11-2014 a las 08:54:41. |
#17
|
||||
|
||||
Entiendo, aunque no le encuentro utilidad
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#18
|
||||
|
||||
no le encuentras utilidad a count(1) ?, pues la utilidad es que consume menos recursos comparado a un count(*), y el count(UnCampo) existe la posibilidad de que el campo sea null (aunque en la clave primaria no) y no sea contado
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#19
|
||||
|
||||
Por eso digo, es que yo siempre uso count(campoclave)
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#20
|
||||
|
||||
Hola,
respecto a lo de count(1), yo no lo sabía hasta que hace un año un "gurú" me dijo que lo hiciera así. Es una persona con conocimientos de Oracle de muchísimo nivel. Cuando pueda le preguntaré porqué es más eficiente. Bajo mi punto de vista, y dado que cuando haces un count de un campo el motor debe evaluar si es nulo o no, ahí puede haber una pérdida de tiempo. Sin embargo, si pones count(1), solamente revisará si hay registro o no, independientemente del valor que tengan los campos. Aunque esto indudablemente dependerá de cada motor de bbdd , de cómo parsee las sentencias sql y qué ejecute realmente tras el parseo. Ya sabeis que los motores en ocasiones hacen una transformación de las sentencias sql para optimizar los resultados ( aunque en ocasiones consigan lo contrario). Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cuantos registros devuelve una consulta | kizé | MySQL | 1 | 25-10-2010 10:13:30 |
Saber cuantos registros tiene un GridView | JuanErasmo | .NET | 1 | 02-01-2007 21:19:32 |
dbGrid como devuelve el numero de registros | omarifr | Conexión con bases de datos | 3 | 15-07-2005 20:56:58 |
Saber cuantos registros origino la consulta | JorgeBec | SQL | 1 | 12-11-2004 16:48:17 |
Select Max siempre devuelve valor | FernanGil | Conexión con bases de datos | 3 | 06-10-2003 15:55:36 |
![]() |
|