Ver Mensaje Individual
  #1  
Antiguo 08-03-2007
Avatar de Bicholoco
Bicholoco Bicholoco is offline
Miembro
 
Registrado: mar 2007
Posts: 21
Reputación: 0
Bicholoco Va por buen camino
Question Duda rapida sobre Locate

Aunque mi pregunta se parece a la de Sergiotur ( http://www.clubdelphi.com/foros/showthread.php?t=41017) la pongo en otro tema para que no se mezclen.

Tengo una base de datos con un ClientDataSet y un DataSource.
He de hacer una consulta con un bucle. Tan solo quiero comprobar si existe un valor "i". No me importa su posición ni el contenido. Solo quiero saber si existe en la tabla. ÇQue devuelva un true o false.

La tabla posee en la columna 'Numero' diversos valores de tipo Word (por ejemplo 1,2,3,5,7,14,25).
Quiero que me diga el valor más pequeño que no está en la tabla (en el anterior ejemplo sería el 4)

Lo he intentado así:

Código:
i:=0; 
 Repeat 
i:=i+1; 
 until not (cds.Locate('Numero', i , []));  
Resultado:=i;
y así:
Código:
i:=0; 
 Repeat 
i:=i+1; 
 until not (cds.Locate('Numero', IntToStr(i) , []));  
Resultado:=i;
Pero siempre me da resultado=1. Para i<3 debería continuar el bucle, pero no lo hace.

¿Alguna sugerencia, además de dejarme esto y tirarme por un puente? Gracias
Responder Con Cita