Bueno, disculpa la intromisión anterior pues la cosa no resulto... pero así:
Código Delphi
[-]
i:=0;
Repeat
i:=i+1;
until not (cds.Locate('Numero', i, []));
Resultado:=i;
tal y cual como tu la habías planteado hice la prueba con una tabla en memoria y me funciona perfectamente.
P.D: No sera que en realidad le falta el 1 a tu tabla?