jdpc91 / redabitsScabcr

1 stars 0 forks source link

En tabla FACTURAS, columna CEDULA: "[SQL Server]String or binary data would be truncated. (8152)" #6

Closed shackra closed 6 years ago

shackra commented 6 years ago

Haciendo pruebas de integracion descubro que insertar un nuevo record en Facturas falla con el siguiente error:

DataError: (pyodbc.DataError) ('22001', '[22001] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]String or binary data would be truncated. (8152) (SQLExecDirectW)') [SQL: 'INSERT INTO FACTURAS] ([NUM_FACTURA], [COD_POS], [TIPO], [FECHA], [MONTO_TOTAL], [SUBTOTAL], [MONTO_CONTADO], [MONTO_CHEQUE], [MONTO_TARJETA], [MONTO_CREDITO], MONTO_NC], [MONTO_CERTIFICADO], [IV], [VENDEDOR], [CAJERO], [CLIENTE], [DESCUENTO], [COD_TARJ], [OBSERVACIONES], [HILERA], [MENSAJE_ERROR], [CEDULA], [TIPO_CEDULA], [CORREO], [FOLIOMH], [LINK], [LINK_RESPUESTA], [LINK_PDF], [RESPUESTA_HACIENDA], [RESPUESTA_TRIBUTACION]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)']
[parameters: (0, 'TIENDA', 'F', None, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Rodolfa Lopez', 'Samuel Vicente', 'Brunilda Andres', 0, None, None, None, None, '114760094', None, '', '', '', None, None, None, None)] (Background on this error at: http://sqlalche.me/e/9h9h)

Depurando con mucho cuidado y colocando una cadena donde corresponda en el modelo para insertarlo en la base de datos descubrí que el problema se dispara cuando la cadena de texto es en el campo CEDULA es mayor o igual a 3 caracteres.

En la base de datos la tabla esta definida como un VARCHAR de 20 caracteres de longitud.

 $ sqlcmd -S localhost -U SA -P u2ykHVe3XMSPzvL9 -Q "USE Moderna; SELECT COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='FACTURAS'" | grep CEDULA | tr -s \[:space:\]

CEDULA varchar 20
TIPO_CEDULA char 2
shackra commented 6 years ago

Fix at a514da9