Hola:
No sé si te sirva pero a mi me ha pasado con BDE que el número de registros que tiene el DataSet me regresa -1, yo lo he arreglado (pero esto no es muy eficiente que digamos) haciendo lo siguiente:
Código:
...
query.open;
query.last;
x:= query.RecordCount;
...
A lo mejor asi puedes recuperar el registro en el que te encuentras
Espero te sirva de algo
Saludos a todos