¿Error de Tdolphin con decimales MySql?

Post Reply
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

¿Error de Tdolphin con decimales MySql?

Post by JoseAlvarez »

hola a todos y un gran saludo.

Tengo el siguiente caso:

Debo manejar numeros de 13 enteros con 8 decimales en una tabla MariaDB.

Hasta ahi todo bien como se ve en la siguiente figura:

Image

El problema se presenta al hacer el query. Siempre retorna el valor del campo con solo 3 decimales y los redondea, como se puede ver aca:

Image

¿Le ha pasado a alguien algo parecido? ¿Alguna sugerencia para solventar?

Tdolphin + FW17.01 +xHarbour + BCC7 + Pelles c (como editor de recursos)

Quedo Atento a sus gentiles respuestas
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql? SOLUCIONADO

Post by JoseAlvarez »

Saludos estimados amigos del foro.

Investigando y probando sobre el problema planteado sobre decimales, me encuentro que el mismo al parecer es heredado del viejo CLIPPER donde la precision con decimales se pierde cuando la variable numerica excede su maximo que segun lo leido es de 19 digitos.

Pense en un principio que era problema de la TDOLPHIN pero en las pruebas que hice en variables de memoria, el resultado fue el mismo, por lo que comprobe que nada tiene que ver la clase.

Muchas gracias a todo los que leyeron mi pregunta con la mejor intencion de ayudar.

Tenia entendido que con Harbour / xHarbour este tipo de limitaciones ya no existian, pero por lo menos en este caso, creo que aun esta alli.

Un abrazo amigos.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql?

Post by JoseAlvarez »

Image
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: ¿Error de Tdolphin con decimales MySql?

Post by cmsoft »

Jose, muchas gracias por la info. No lo sabía a esto.
User avatar
cnavarro
Posts: 6557
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: ¿Error de Tdolphin con decimales MySql?

Post by cnavarro »

Jose, entiendo que has utilizado en tus pruebas

Code: Select all | Expand


SET DECIMALS TO 8
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql?

Post by JoseAlvarez »

Hola César y Cristobal.

¿cómo están?

César, yo tampoco lo sabia, me costó 3 dias averiguarlo, :lol:

Cristóbal, si, por supuesto, tengo en el main.prg

Set Fixed On
Set Decimals to 8

Hice todas las pruebas que pude, ya que pensaba que era problema de la tDolhin que no me regresaba los valores correctos. Cuando se me ocurrió probar con valores de memoria fue que vi que el problema era de xBase.

Lo bueno es que aprendimos algo y quedará la pregunta para los creadores de xHarbour sobre esta limitación.

Gracias a ambos por su feed back.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: ¿Error de Tdolphin con decimales MySql?

Post by karinha »

Buenos días José, cuando el campo numérico es demasiado grande, debes usar un campo TEXTO, para almacenar los números y usar VAL () para transformar el campo de texto que contiene los números en números. Yo lo uso así. Abrazos.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql?

Post by JoseAlvarez »

Hola joao saludos.

Tambien intenté de esa manera, pero a nivel de menoria igual se trunca la precision decimal.

En el caso que me ocupa necesito trabajar con numeros de 13 enteros y 8 decimales y no se puede almacenar un dato asi en memoria.

Por lo menos yo no pude. Si alguien prueba y consigue la solución sería bueno que compartiera.

Yo lo mas que pude manejar fue 8 enteros y 8 decimales. Si agrego un entero mas, se pierde la precision decimal.

Gracias por el feed back
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: ¿Error de Tdolphin con decimales MySql?

Post by cmsoft »

Tal cual indica Jose, yo hice las mismas pruebas y obtuve lo mismo
Usando un

Code: Select all | Expand


SELECT FORMAT(micampo, 8) as campo_formateado ,micampo FROM mitabla
 

Y luego haciendo xbrowse(oQry) obtento en el campo campo_formateado bien el numero con toda la precisión decimal (en formato texto) y no asi en micampo (el campo definido como DECIMAL 21,8 y tambien probé con float y double).
Claramente es una limitación de harbour
Post Reply