¿Error de Tdolphin con decimales MySql?

¿Error de Tdolphin con decimales MySql?

Postby JoseAlvarez » Sun Jun 06, 2021 2:01 am

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: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql? SOLUCIONADO

Postby JoseAlvarez » Mon Jun 07, 2021 10:30 pm

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: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql?

Postby JoseAlvarez » Mon Jun 07, 2021 10:31 pm

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
JoseAlvarez
 
Posts: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql?

Postby cmsoft » Tue Jun 08, 2021 11:05 am

Jose, muchas gracias por la info. No lo sabía a esto.
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: ¿Error de Tdolphin con decimales MySql?

Postby cnavarro » Tue Jun 08, 2021 11:24 am

Jose, entiendo que has utilizado en tus pruebas
Code: Select all  Expand view

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
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: ¿Error de Tdolphin con decimales MySql?

Postby JoseAlvarez » Tue Jun 08, 2021 1:42 pm

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
JoseAlvarez
 
Posts: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql?

Postby karinha » Tue Jun 08, 2021 3:23 pm

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
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ¿Error de Tdolphin con decimales MySql?

Postby JoseAlvarez » Tue Jun 08, 2021 7:01 pm

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
JoseAlvarez
 
Posts: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: ¿Error de Tdolphin con decimales MySql?

Postby cmsoft » Tue Jun 08, 2021 7:42 pm

Tal cual indica Jose, yo hice las mismas pruebas y obtuve lo mismo
Usando un
Code: Select all  Expand view

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
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 85 guests