No quieras suponer que es eso, ya es seguro que a sido eso, debido a que -1 no esta dentro del rango de los Cardinales, hay que anotar que el RecordCount no funciona con todos los hijos del TDataSet, quizá esa sea la razón por la que te devuelve siempre -1
.