SEEK en Tdolphin y Mysql indice campo NUMERICO (SOLUCIONADO)
Posted: Mon Feb 27, 2012 6:36 pm
Saludos, crei tenia la solucion, pero ahora se me presenta el mismo problema que el colega, mi campo clave es numericoy por ese mismo tengo mi ordenamiento del Query, "SELECT * FROM inscripcion ORDER BY numero ASC", si uso Query:Seek(MiVar, "nom_campo"), para el Seek nunca existe ningun valor y si hago el Query:Seek(MiVar, "nom_campo", , , .t. ) para el lSoft, entonce me muestra el valor mas coincidencia como si fuese una busqueda secuencial, ejemplo si mi valor en mi campo es 3450 y le digo al Seek que busque el 345 dice que existe aunque no exista, toma en cuenta los 3 primeros valores del valor del campo del query y para el ningun valor por debajo de 100 existe, como si solo trabajara con valores de 3 digitos, a ver si alguien le ha pasado y ha resuelto, esto solo sucede si el campo de la tabla es NUMERICO, espero alguna ayuda o si Daniel le puede dar una revisada a ver que pasa con el SEEK, gracias y saludos...
Saludos, me habia pasado algo parecido, yo llenaba los datos manualmente a la tabla y a veces no los encontraba, es como si la tabla se embasura, prueba limpiar la tabla o cambiar el 1 o el 2 por el valor 11, ya que si te acepto el 1 y el 2, debe aceptarte el 11 ya que todos los valores son numericos, igualmente las busqueda las hago es con el valor en una VAR, intentalo de esta manera a ver..
nNum := 11
IF oQry:SEEK(nNum, "numero") = 0
.....
saludos...
joseluisysturiz wrote:José Ríos wrote:Buen dia.
Siguiendo con muis pruebas en tdophin me encontre con un caso en que el metodo seek con datos numericos no encuentra numeros de mas de un digito.
Por ejemplo si tengo dados de alta los registros:
Numero Nombre
1 A
3 B
11 C
Y hago el siguiente query y despues 3 busquedas seek cobre el query
- Code: Select all Expand view
DEFINE QUERY oQry "SELECT * FROM vendedores order by numero"
// y despues despues hago la siguientes busquedas:
If oQry:seek(2, 'Numero' ) > 0
msginfo('encontrado')
else
msginfo('no encontrado')
endif
If oQry:seek(1, 'Numero' ) > 0
msginfo('encontrado')
else
msginfo('no encontrado')
endif
If oQry:seek(11, 'Numero' ) > 0
msginfo('encontrado')
else
msginfo('no encontrado')
endif
En los dos primeros casos (numero =1 y numero=2 ), el resultado de la busqueda es exitoso, pero cuando numero=11 el registro no es encontrado.
Haciendo pruebas con find el resultado de la busqueda para numero=11 es correcto.
¿Esto significa que seek no debe usarse con campos numericos?.
Saludos.
Jose Rios.
Saludos, me habia pasado algo parecido, yo llenaba los datos manualmente a la tabla y a veces no los encontraba, es como si la tabla se embasura, prueba limpiar la tabla o cambiar el 1 o el 2 por el valor 11, ya que si te acepto el 1 y el 2, debe aceptarte el 11 ya que todos los valores son numericos, igualmente las busqueda las hago es con el valor en una VAR, intentalo de esta manera a ver..
nNum := 11
IF oQry:SEEK(nNum, "numero") = 0
.....
saludos...