FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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; Código:
i:=0; Repeat i:=i+1; until not (cds.Locate('Numero', IntToStr(i) , [])); Resultado:=i; ¿Alguna sugerencia, además de dejarme esto y tirarme por un puente? Gracias |
#2
|
||||
|
||||
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
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?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ Última edición por jhonny fecha: 08-03-2007 a las 15:25:45. |
#4
|
||||
|
||||
Otra manera de hacerlo es... aunque como ya te he dicho anteriormente la tuya funciona a la perfección:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ Última edición por jhonny fecha: 08-03-2007 a las 15:39:49. |
#5
|
||||
|
||||
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
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#6
|
||||
|
||||
Cita:
Seguiré investigando a ver lo que puede ser. Gracias. |
#7
|
||||
|
||||
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.
|
#8
|
||||
|
||||
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.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ Última edición por jhonny fecha: 09-03-2007 a las 16:59:44. |
#9
|
||||
|
||||
Te I love U.
No sabes el gran favor que me haces. Espero no haberte ocupado mucho tiempo. Muchiiiiiiiiiiiiisimas gracias. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Pregunta sobre la funcion LOCATE()? | Luis Alberto | Varios | 6 | 16-12-2005 00:02:55 |
Una duda sobre los Uses | jorch_yr | Varios | 1 | 30-05-2004 04:39:40 |
Dudas sobre Locate | silviodp | Conexión con bases de datos | 8 | 28-04-2004 14:59:26 |
Una duda sobre ADO | PTW | Conexión con bases de datos | 1 | 13-04-2004 23:33:14 |
|