Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Funciona el RecordCount en los ibQuery's???? (https://www.clubdelphi.com/foros/showthread.php?t=15646)

AGAG4 30-10-2004 03:12:24

Funciona el RecordCount en los ibQuery's????
 
Uso los IBX 7.08 con Delphi 7, FireBird 1.51

Funciona el RecordCount en los ibQuery's????
Lo que pasa es que hago una consulta por medio de un ibQuery enlazandolo a un QuickReport y quiero pasarle el Total de Registros de esta consulta a una variable despues de Abrir el QUERY pero resulta que me regresa un Cero, siendo que me muestra información dentro del QuickReport.

Agradezco cualquier sugerencia.

Hugo 30-10-2004 11:24:01

¿Funciona el RecordCount en IBQuery?
 
Yo uso Delphi 6 profesional con Interbase 6, y funciona de una forma un poco rara. Me explico:

Si yo abro una consulta que no me devuelve ningún registro el valor devuelto será 0.

Si abro una consulta con cualquier número de registros y a continuación consulta el valor de RecordCount será siempre 1.

Si voy al final de la consulta me devolverá el valor correcto de los registros leidos.

Me imagino que en Delphi 7 el resultado será el mismo.

Espero ayudarte.

Saludos.

AGAG4 30-10-2004 16:38:17

oki
 
Funciona con los ibDataSet, estos si te devuelven el Número de Registro Correcto por lo que se les olvidaron tomar en cuenta los ibQuery.

Saludos.

roman 31-10-2004 02:02:51

No creo que se les haya olvidado tomarlo en cuenta. Aunque no conozco ni los IBDataSet ni los IBQuery, lo que te puedo decir es que con muchos servidores de bases de datos no tendrás el dato del número de registros sino hasta que recorras todos los registros resultantes porque a diferencia de bases de escritorio como Paradox, el servidor no manda todos los datos de una sóla vez sino conforme el cliente los va solicitando así que no hay forma de saber cuántos registros hay hasta no tenerlos todos. Posiblemente el IBDataSet lo que haga sea traer al cliente todos los datos de una sóla vez.

Sin embargo siempre puedes lanzar una consulta previa del tipo

Código SQL [-]
select count(*) ...

especificando las mismas condiciones (where) que en la consulta original para obtener el número de registros que satisfacen dichas condiciones y saber así cuántos registros traerá la consulta original. Normalmente hacer una consulta como la que te indico no presupone una gran desventaja ya que son consultas que el servidor hace muy rápido y al cliente le manda sólo el número de registros- un dato muy pequeño.

// Saludos

marcoszorrilla 31-10-2004 12:02:10

Tiene razón Román, pero si en vez de utilizar:
Código SQL [-]
 Select Count(*);
utilizaras un campo por ejemplo:
Código SQL [-]
 Select Count(Telefono);

Tendrá que ser sobre un campo declarado como Not Null o te puedes encontrar con la sorpresa de que no te cuente los valores nulos.

Un Saludo.

AGAG4 02-11-2004 06:34:51

Oki
 
Tienen muchísima razón voy a realizar pruebas, les agradezco sus respuestas..
Que tengan buen día.
Saludos.

buitrago_listas 02-11-2004 07:39:57

Por que no un StoreProcedure?
 
Por que no lo haces con un SP, creo que es bien facil....

Saludos

Fer

AGAG4 04-11-2004 16:24:11

Gracias.....
 
Gracias a todos por responderme, y Tienen mucha Razón lo más viable es hacer una consulta de las 2 formas que mencionan y claro esta, en un Store Procedure.... Que tengan buen día.


La franja horaria es GMT +2. Ahora son las 20:43:04.

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