La Web del Programador: Comunidad de Programadores
 
    Pregunta:  18201 - COMO LOGRAR QUE FUENCIONE RECORCOUNT EN UNA QUERY?
Autor:  francisco reina martinez
Esta propiedad del TQuery parece que funciona sólo cuando quiere. Suele delvolver -1 aunque el cursor tenga varios registros.
Un saludo

  Respuesta:  Angel Wong
utilizo sql server y la manera que me funciona el recordcount es indicandole en donde empieza y donde termina para que registre ese dato.

Qry.First;
Qry.Last;
VAriable:=Qry.RecordCount;

  Respuesta:  mamcx m
No es que funcione cuando quiere: No funciona. Y la razón es simple. Resulta que las bases de datos que se usan en las empresas, o sea bases de datos SQL como Oracle o Sql Server, tienen una mentalidad distinta a las de las locales, como Acces, paradox y Fox. Por lo tanto, TQuery no puede implementar correctamente RecordCount porque Sql Server y Oracle no tienen NADA que permita hacer un recordcount de forma confiable. Una alternativa es ejecutar SELECT MAX(*) FROM MiNombreTabla...

Sin embargo, hay soluciones. Si usas ADO, puedes utilizar recordset locales y el si te arroja el recordcount. O MIDAS, TClientDataSet tambien lo hace.

Ha menos que sea una aplicacion de red, usa un TTable, de lo contrario usa la aternativa del SELEC, MIDAS, ADO o otro componente que cachee los datos en el cliente