Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   RecordCount en Interbase (https://www.clubdelphi.com/foros/showthread.php?t=6580)

ingacg 13-01-2004 20:38:05

RecordCount en Interbase
 
Que tal amigos, tengo una duda:

Actualmente tengo un proyecto en delphi que utiliza un TIBQuery que accesa a una base de datos en interbase, sin embargo, al invocar la propiedad .RecordCount, siempre me devuelve 1 a pesar de que esté cargado con varios registros (con más de uno), a menos que haga un "last" antes de preguntar por el recordcount, sin embargo el hecer last alenta muchísimo el proceso, alguno de ustedes sabe porqué ocurre esto con el redordcount, hay manera de obtenerlo sin hacer un "last" previo?

p/ej.

close;
sql.clear;
sql.add('select * from tabla_1 ');
open;
last; //debo de hacerlo para que el recordcount me devuelva la cantidad
//real, de registros, de lo contrario siempre devuelve 1
if (recordcount >0) then
begin
DlgMessage('el query está cargado con '+ IntToStr(recordcount));

de antemano, gracias

roman 13-01-2004 21:16:26

Como puedes ver en la ayuda de Delphi, la propiedad RecordCount indica el número de registros que se han recogido del servidor y no el número total de registros. Conforme recorres el query, se recogen más registros y aumenta RecordCount de manera que sólo hasta que has recorrido todos (lo cuál logras con Last) obtienes el número total. Esto es así porque al hacer la consulta, el servidor, a diferencia de como sucede con bases de datos como paradox, no envía todos los registros a la vez sino conforme se van requiriendo.

Algo que podrías hacer es contar los registros antes de ejecutar la consulta con una sentencia:

select count(*) from tabla_1

Si la consulta tiene condiciones agregas éstas a la sentencia anterior.

// Saludos

ingacg 13-01-2004 21:20:43

Ok Roman, me queda claro, gracias


La franja horaria es GMT +2. Ahora son las 02:10:57.

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