Hola expertos,
a ver si logro explicarme bien porque estoy metido en un lío bastante molesto...
Estoy trabajando en una aplicación de recogida de datos de proceso trabajando
con Python y con postgres 8.3 como base, usando para conectarme psycopg2.
El programa está terminado y funciona bien, pero de vez en cuando aborta, dando
como única explicación "Fallo de Segmentación". Esto es extremadamente raro en
Python, ya que es un lenguaje interpretado...
Bien, el caso es que por casualidad, he pillado una excepción en mi módulo de
base de datos, que hace sospechar que postgres podría estar implicado. El
mensaje de error es el siguiente:
15:55:41-> Fallo la consulta: WARNING: there is no transaction inCANTE=2->error
de sintaxis en o cerca de <WARNING>
que viene del fragmento en Python:
except Exception as msg:
if not "TRAMAS_RECIENTES" in query :
sys.stderr.write(time.asctime()[11:19] + "-> Fallo la consulta:
" \
+ query + "->" + str(msg) )
self.reconexion()
return []
Lo que ha pasado aquí es que la query que he pasado a la función se ha
machacado con la "fusión" de un mensaje de advertencia de postgres (WARNING:
there is no transaction in) y una consulta antigua (query = "DELETE FROM
ORDENES WHERE ID_REPLICANTE=2"), que sólo hago al arranque del programa para
limpiar órdenes residuales.
No quiero preguntar por qué Python aborta, sino simplemente si alguien sabe
cuando postgres lanza ese mensaje de advertencia para tener alguna pista de por
qué puede estar pasándome esto.
También me gustaría saber si alguien tiene experiencia con psycopg2 y le ha
pasado algo así, y si hay alternativas para conectar desde Python, ya que no me
fío mucho del psycopg2 despues de ver esto.
Gracias de antemano
Jorge Romeo
--
TIP 1: para suscribirte y desuscribirte, visita
http://archives.postgresql.org/pgsql-es-ayuda