RecordCount en query (Interbase)
Hola a todo/as.:) Un saludo.
Estoy utilizando RecordCount de un query para obtener el número de registros que han sido seleccionados en la consulta SQL. (Interbase) Algo así como esto: nNumero := DataModule.Query.RecordCount; Form.Label.Caption := IntToStr(nNumero); Pero en algunos casos me da un resultado de -1, cuando hay registros seleccionados He leído en la ayuda de Delphi que sólo se recomienda el uso de RecordCount en dBase y Paradox. Conoceis alguna alternativa a RecordCount para interbase? Muchas gracias. |
Obtienes -1 porque el servidor no manda todos los registros de una vez, así que la componente no tiene forma de saber cuál es total de registros obtenidos hasta que no recorra todos. Desconozco si exista una manera mejor, pero siempre puedes lanzar una consulta previa del tipo
SELECT count() con los mismso criterios (WHERE) que la cláusula original. Aunque representa una consulta extra, en general debe ser muy rápida. // Saludos |
Saludos
Tambien puedes invocar FetchAll del dataset (query.fetchall), aunque tiene el incoveniente de que va a traer todos los registro del servidor, pero si crees que traera pocos registros, pues no creo que afecte mucho el rendimiento. |
La franja horaria es GMT +2. Ahora son las 15:01:12. |
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