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 |