Desarrolle un sistema en VFP9 con MYSQL, todo bien hasta que un cliente ingreso un dato numerico con 6 decimales, se guarda perfectamente pero al momento de sacar ese dato mediante consulta solo me saca con 4 decimales, ya utilice SET DECIMAL TO nada, SET FIXED off/ON nada no se como solucionar este problema muchas gracias por la ayuda
Hola,
El dato se está guardando bien en MySQL (con sus 6 decimales completos), el problema es que Visual FoxPro está redondeando la vista al leerlo, y eso normalmente viene de cómo está definido el campo del cursor que recibe el resultado de la consulta, no de la tabla MySQL en sí. Cuando VFP crea automáticamente el cursor a partir de una consulta remota (vía ODBC/SQL Pass-Through), infiere el número de decimales del campo Numeric/Double resultante, y por defecto suele quedarse corto si no se lo especificas explícitamente.
La solución es forzar el número de decimales del campo en la propia consulta, en vez de dejar que VFP lo infiera:
SELECT CAST(tu_campo AS NUMERIC(18,6)) AS tu_campo ;
FROM tu_tabla ;
INTO CURSOR resultado
NUMERIC(18,6) le dice explícitamente al cursor que ese campo debe tener 6 decimales, sin depender de la inferencia automática de VFP a partir del driver ODBC.
Si el problema persiste incluso forzando el CAST, revisa también la configuración global de decimales de VFP con SET DECIMALS, que en tu mensaje dices que ya probaste pero conviene confirmar que se ejecuta antes de abrir el cursor, no después: SET DECIMALS afecta a cómo se muestran los valores calculados desde ese momento en adelante, si lo pones después de crear el cursor puede no tener efecto sobre datos ya cargados.
Pablo