Tengo un fichero con la siguiente extructura
Code: Select all
FIELD "CUENTA" TYPE C LEN 10
FIELD "TITULO" TYPE C LEN 40
y con dos indices para los dos campos.
En el MAIN tengo estas clausulas y he probado varias combinaciones.
Code: Select all
SET EXACT ON
SET SOFTSEEK OFF/ON
El caso es que cuando quiero buscar un registro hago una llamada a una función que es algo así
Code: Select all
/// ------> Busqueda del registro
nRet:=Fichero-> BuscaReg(xClave)
msgbox(nRet)
// -----------------------------------------
// Funcion para buscar registro
// -----------------------------------------
FUNC BuscaReg(cValor)
IF !empty(cValor)
DbSeek(cValor)
IF FOUND()
lRet:=1
ELSE
lRet:=2
ENDIF
ENDIF
RETURN lRet
Bueno, pues cuando la clave es "NUMERICA" no hay ningún problema, pero cuando es alfabética si que lo hay
Imaginaros estos registros
Reg 1 :"10 " - "EL ULTIMO DE LA FILA"
Reg 2 :"1000" - "MARIA DE LAS MERCEDES"
Reg 3 :"2 "- "DONDE VAS ALFONSO XIII"
Si hago
xClave:="129"
msgbox(BuscaReg(xClave))
Me devuelve el numero 2.., por lo que es correcto.
?? 2 // no existe..., ¡¡correcto!!
Pero el problema es cuando pongo la clave
xClave:="100"
msgbox(BuscaReg(xClave))
?? 1 // EXISTE.. ¡¡NO CORRECTO!!
Es como si funcionara por aproximación
¿Alguien ha experimentado problemas de esta índole con el DBSeek..?
Gracias y vamos con una cervecita