Ver Mensaje Individual
  #2  
Antiguo 25-07-2006
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
RecordCount no es aplicable en muchos sistemas de bases de datos cliente/servidor, te valdra si usas una base de datos paradox o dbase por ejemplo, pero no si usas firebird o interbase.

Cuando usas un query, los ibx no se traen todos los registros resultantes al cliente, solo los que se necesiten. Si tienes enlazado un dbgrid, por ejemplo, se traeran los registros correspondientes a las lineas del dbgrid que se necesiten visualizar, solo cuando avanzas en el dbgrid se reciben del servidor mas registros.

De modo que recordcount solo te indicara el numero de registros que se han recibido de las base de datos (de los que se ha hecho fetch).

Tendras que hacer una consulta sql adicional con un count(*), para saber el numero total de registros.

Tambien puedes hacer un fetchall o usar un clientdataset, ya que esto se trae todos los registros. Pero esto no suele ser eficiente y puede colapsar todo el sistema: si el resultado de la query son miles de registros y haces esto, se traeran todos esos miles de registros, pudiendo colapsar el equipo cliente porque se quede sin memoria, la propia red mientras se reciben toda esa burrada de registros, y ademas puede tardar el proceso muchos segundos o minutos.

Ahora si, si sabes seguro que el resultado no son mas que unas pocas decenas o cientos de registros puedes hacer un fetchall sin problemas.

Saludos
Responder Con Cita