[pyar] pyodbc con oracle graba mal los datos

Javier Marcon javiermarcon en gmail.com
Lun Abr 21 16:31:15 ART 2014


Hola, yo tengo una aplicación que usa pyodbc para grabar remitos
(master-detail) en 2 tablas de Oracle. Una clase hace un cursor.execute
de una sentencia (que graba datos estadisticos del remito), luego llama
a otra clase que graba los datos del remito en 2 tablas, una tabla tiene
los datos de cabecera y hace un solo insert con cursor.execute, luego se
graba el cuerpo del mensaje con varios cursor.execute asi:

sql = "insert into remitos_detalle ( ORDEN, ARTICULO, UUID, CANTIDAD)
values (?, ?, ?, ?)"
cursor.execute("delete from remitos_detalle where uuid = ?", (u'7233e21c'))
cursor.execute(sql, (0, u'Art21', u'7233e21c', u'6'))
cursor.execute(sql, (1, u'Art24', u'7233e21c', u'6') )
cursor.execute(sql, (2, u'Art25', u'7233e21c', u'12'))
cursor.execute(sql, (3, u'Art26', u'7233e21c', u'6'))

Luego se retorna a la clase anterior y se hace el cursor.commit. Lo que
pasa es que se graban bien los datos estadisticos y la cabecera de los
remitos, pero la tabla remitos_detalle se graba mal (sin dar error),
para el ejemplo anterior en remitos detalle se grabó:

ORDEN  ARTICULO  UUID          CANTIDAD
0            Art21         7233e21c  6
1            Art21         7233e21c  Null
2            Art21         7233e21c  Null
3            Art21         7233e21c  Null

Los campos ARTICULO y UUID son nvarchar2 (100) y los campos ORDEN y
CANTIDAD son Float. La conexión tiene puesto que siempre retorne los
datos como unicode.

A alguien se le ocurre por que me puede estar pasando esto?

Gracias,

Javier.


More information about the pyar mailing list