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; Código:
i:=0; ¿Alguna sugerencia, además de dejarme esto y tirarme por un puente? Gracias |
|
Bueno, disculpa la intromisión anterior pues la cosa no resulto... pero así:
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? |
Otra manera de hacerlo es... aunque como ya te he dicho anteriormente la tuya funciona a la perfección:
|
Hola
Suponiendo que la tabla se llame Tabla1 y el campo numerico se llame codigo yo usaría un SQL del tipo:
Esto me daría el menor número sin susesor inmediato, pues ya se que el menor número que no está en la tabla es la respuesta de esta query mas 1. Espero sirva de algo. Saludos |
Cita:
Seguiré investigando a ver lo que puede ser. Gracias. |
1 Archivos Adjunto(s)
He extraido de mi programa lo que me da problema. Creo que el fallo no es de codigo, sino algo del Object Inspector. Estoy seguro que es una tontería.
|
1 Archivos Adjunto(s)
Uffff... Hombre casi que no...
Fue una gran ventaja el que hayas colgado el programa y la verdad es que con el locate siempre marcaba 1, ¿La razón? pues si alguien del foro puede explicarla yo también le agradecería la respuesta... La cosa quedo así: en el procedimiento Button3Click:
y al objeto CDS le hice los siguientes cambios... 1. Por medio de su editor de campos le agregue el campo Dibujo de tipo Word, tal y cual como lo tenias en su FieldDefs. 2. En IndexDefs Agregue el campo dibujo, especificando su propiedad Fields como "Dibujo". 3. Y por ultimo y para activar dicho índice seleccione en la propiedad IndexFieldName (Adivinen que) el campo Dibujo. Y listo, ya me hace lo que quieres... Bueno Espero que te sirva esta solución. ;) P.D: cuelgo la aplicación para que vean los cambios en hechos. |
Te I love U. :D
No sabes el gran favor que me haces. Espero no haberte ocupado mucho tiempo. Muchiiiiiiiiiiiiisimas gracias. |
La franja horaria es GMT +2. Ahora son las 05:40:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi