Campo int truncado vfp mysql

100 views
Skip to first unread message

Gregorio Nava

unread,
Apr 18, 2022, 9:22:45 AM4/18/22
to publice...@googlegroups.com
buenos dias, tenia un sistema en vfp trabajando bien, hace como 1 año o dejaron de utilizar, trabajaba con mysql 5.0, hace dos dias intente utilizarlo en otro equipo
baje un respaldo pero a un mysql 8.0 y ahora al ejecutar un update en una tabla
me devuelve sl siguente error

Truncated incorrect INTEGER value: '2.00000000000000000e+01'

xsql = "update carreras set "
xsql = xsql + "fecha='"+(transfecha)+"',"
xsql = xsql + "estado='"+(LcEstaCa)+"',"
xsql = xsql + "horacar='"+(Lchoraca)+"',"
xsql = xsql + "codigouni='"+(LCCodUnicC)+"',"
xsql = xsql + "polla="+Str(LnNumPoll,1)+","
xsql = xsql + "nroejemp="+Str(LcNumCaba,2)
xsql = xsql + " Where codhipo = '"+(LnCodHipo)+"' and numcarr = ?H"

este es el codigo, verificando con sqlyog me di cuenta que el campo es de tipo
int en la lingitud tiene cero, (ver imagen 01), les consulto para ver si a alguien le habia pasado lo mismo, gracias

HernanCano

unread,
Apr 18, 2022, 4:48:10 PM4/18/22
to Comunidad de Visual Foxpro en Español
1. ¿Cuál es el campo en cuestión (donde se produce el error): polla, numejemp, numcarr?

2. ¿Cuál campo tiene longitud cero? ¿Dónde tiene longitud cero? Parece que es el la bdatos .... lo cual es ilógico: ¿en el motor tiene longitud cero?

3. ¿Dónde está la imagen01?

Gregorio Nava

unread,
Apr 18, 2022, 6:52:24 PM4/18/22
to publice...@googlegroups.com
Buenas, el problema es bastante raro, quite los campos enteros del update y sale el mismo error, no es por ningun campo dentro del update, para hacer la actualizacion
hago un for de 1 a 20 (20 Carreras), y el error es este Truncated incorrect INTEGER value: '1.00000000000000000e+00', y sigue 2.000, 3.000...,1.900,2.000, genera 20 errores
y no actualiza la tabla, cuando lo trabajaba en mysql 5.0 no daba errores, anexo la imagen donde muestra los campos int

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/e7e2837b-e3d8-4da7-9a3c-13731357f11bn%40googlegroups.com.
Imagen01.png

Hendell Mora

unread,
Apr 18, 2022, 7:11:49 PM4/18/22
to publice...@googlegroups.com

How to fix incorrect integer inserted in MySQL?

For solution, change the data type from INT to BIGINT as BIGINT has a maximum value of 9223372036854775807, it might solve your problem. Have a look at this site: https://dev.mysql.com/doc/refman/5.7/en/integer-types.html


Gregorio Nava

unread,
Apr 18, 2022, 7:22:22 PM4/18/22
to publice...@googlegroups.com
pero ya probe y quite del update los campos int y deje solo los varchar y sigue el error

ZeRoberto

unread,
Apr 19, 2022, 12:26:33 AM4/19/22
to publicesvfoxpro
Al parecer es una Polla demasiado grande jajajajaja

A ver prueba con esto, crea las variables localmente para que puedas ejecutar el test

lnHandle = SQLStringConnect("driver={MySQL ODBC 5.1 Driver}; server=localhost; database=midb; user=root; password=123456; option=16384")
If lnHandle > 0
   Text To lcSQLCommand TextMerge NoShow Flags 1 Pretext 15
         UPDATE carreras
                SET fecha = ?transfecha,
                    estado = ?LcEstaCa,
                    horacar = ?Lchoraca),
                    codigouni = ?LCCodUnicC,
                    polla= ?Str(LnNumPoll,1),
                    nroejemp = ?Str(LcNumCaba,2)
                WHERE codhipo = ?LnCodHipo and numcarr = ?H
   EndText
   lnCode = SQLExec(lnHandle, lcSQLCommand, "dbResult")
   If lnCode > 0
      Select dbResult
   EndIf
   SQLDisconnect(lnHandle)
 Else
   AError(laError)
   MessageBox(laError[2])
EndIf


Saludos

Ze



--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Gregorio Nava

unread,
Apr 19, 2022, 8:49:58 AM4/19/22
to publice...@googlegroups.com
Buenas, igual da el mismo error, lo raro ese que el valor del integer es del 1 al 20, osea el for, anexo imagen

ImaSql02.png

Antonio Meza

unread,
Apr 19, 2022, 10:32:00 AM4/19/22
to Comunidad de Visual Foxpro en Español
Al parecer quieres guardar 1.0 en un campo entero INT ??

Ya revisaste los valores que estas enviando en tu consulta SQL?

envía al portapapeles la consulta y luego pégala en tu administrador de base de datos para que veas el error mas claro

_cliptext =  lcSQLCommand

saludos
Antonio Meza

Germán Fabricio Valdez

unread,
Apr 19, 2022, 3:24:45 PM4/19/22
to Comunidad de Visual Foxpro en Español
vas a tener que instalar el mysql 5 en la que esta hecha esa base de datos.  puede ser una incompatibilidad.  y despues ver de actualizar a la 8

ZeRoberto

unread,
Apr 19, 2022, 10:01:22 PM4/19/22
to publicesvfoxpro
Por ahi lei que tienes que poner esto 

SET ANSI_WARNING OFF

Lo que no se es que si se puede poner en el my.ini


Text To lcSQLCommand TextMerge NoShow Flags 1 Pretext 15
   SET ANSI_WARNING OFF

EndText
lnCode = SQLExec(lnHandle, lcSQLCommand, "dbResult")

Saludos

Ze


--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Hendell Mora

unread,
Apr 19, 2022, 10:05:03 PM4/19/22
to publice...@googlegroups.com
Se escribe en la consola de mysql y queda ya predeterminada 

ZeRoberto

unread,
Apr 19, 2022, 10:05:55 PM4/19/22
to publicesvfoxpro
Fijate en el archivo My.ini o My.cfg si tienes el parámetro TRADITIONAL definido en el la opcion sql-mode

sql-mode="STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION"

Si lo tienes quitalo

Saludos

Ze


ZeRoberto

unread,
Apr 19, 2022, 10:09:10 PM4/19/22
to publicesvfoxpro
Te recomiendo que leas esto, sobre todo la seccion TRADITIONAL



Saludos

Ze



El lun, 18 abr 2022 a la(s) 08:22, Gregorio Nava (gregorio...@gmail.com) escribió:
--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

ZeRoberto

unread,
Apr 19, 2022, 10:19:58 PM4/19/22
to publicesvfoxpro
Perdon me equivoque, creo que es el parámetro  STRICT_ALL_TABLES

Saludos

Ze




Reply all
Reply to author
Forward
0 new messages