Errores #20163

Tamaño de campos enteros en MySQL

Añadido por Toni Felix Ferrando hace más de 12 años. Actualizado hace más de 12 años.

Estado:Nueva Fecha de inicio:2011-12-29
Prioridad:Normal Fecha fin:
Asignado a:- % Realizado:

0%

Categoría:- Tiempo dedicado: -
Versión prevista:-
Ref. DESIG (Jira):

Descripción

Cuando Genaro está generando código para tablas de MySQL (al menos, no lo he comprobado con otros SBGDs), los campos de tipo entero (TINYINT, SMALLINT, MEDIUMINT, INT y BIGINT) los convierte en tipo de datos gvHidraInteger con número de dígitos puesto al número de bytes en los que MySQL almacena esos datos (1, 2, 3, 4 y 8, respectivamente). Esto es incorrecto. Es posible que MDB2 no devuelva el número de dígitos especificado en la tabla MySQL, típicamente mostrado entre paréntesis tras el tipo (INT, SMALLINT, TINYINT, etc.)... En dicho caso, debería usarse el número de dígitos máximo para esos tipos de datos, es decir: TIPO;DIGITOS SIN SIGNO;DIGITOS CON SIGNO TINYINT;3;4 SMALLINT;5;6 MEDIUMINT;8;8 INT;10;11 BIGINT;20;20 Eso considerando que el signo - contase como un dígito más (no sé aún si es así en gvHidra). Fuente de referencia: http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html

int_length.diff (2,7 KB) Toni Felix Ferrando, 2011-12-29 10:12

int_length_v2.diff (2,7 KB) Toni Felix Ferrando, 2011-12-29 10:13

fields_length.diff (3,6 KB) Toni Felix Ferrando, 2011-12-29 10:13

Histórico

Actualizado por Toni Felix Ferrando hace más de 12 años

Jose Manuel Ferrer. El fichero adjunto implementa esto, probablemente con independencia del SGBD utilizado (eso espero).

Actualizado por Toni Felix Ferrando hace más de 12 años

*Jose Manuel Ferrer.*Modifico el parche para que obtenga correctamente si el entero es con signo o sin signo.

Actualizado por Toni Felix Ferrando hace más de 12 años

Jose Manuel Ferrer. El nuevo parche (fields_length.diff) no sólo pone la anchura de los campos enteros, también pone la anchura de los campos de tipo fecha, hora y fecha+hora.

Exportar a: Atom PDF