Good afternoon, my question is this, there is a postgres sql query
that does not work, I am doing the query q is:

for r in rws:
              try:
                  db.ratecltes.insert(id_rutas=r.rutas.id,
id_clte=r.clientes.id, rate=r.rutaproveedor.valor)
              except:
                  # # # HERE IS THE ERROR # # #
                  query=((db.ratecltes.id_rutas==r.rutas.id) &
(db.ratecltes.id_clte==r.clientes.id))
                  db(query).update(rate=int(r.rutaproveedor.valor))


Web2py The message sent is as follows.

 File "/home/marcelo/web2py/applications/administrador/controllers/
default.py", line 1087, in cargar_tarifas
    db(query).update(rate=int(r.rutaproveedor.valor))
  File "/home/marcelo/web2py/gluon/sql.py", line 3285, in update
    self._db._execute(query)
  File "/home/marcelo/web2py/gluon/sql.py", line 958, in <lambda>
    self._execute = lambda *a, **b: self._cursor.execute(*a, **b)
InternalError: transacción abortada, las órdenes serán ignoradas hasta
el fin de bloque de transacción


PostgreSQL modify the settings to see the log_statement = all, and
this is the result:


2010-06-03 16:31:52 CLT ERROR:  transacción abortada, las órdenes
serán ignoradas hasta el fin de bloque de transacción
2010-06-03 16:31:52 CLT SENTENCIA:  UPDATE ratecltes SET rate=60.0
WHERE (ratecltes.id_rutas=1 AND ratecltes.id_clte=3);
2010-06-03 16:32:51 CLT WARNING:  ya hay una transacción en curso
2010-06-03 16:32:51 CLT WARNING:  ya hay una transacción en curso
2010-06-03 16:32:54 CLT WARNING:  ya hay una transacción en curso
2010-06-03 16:33:00 CLT WARNING:  ya hay una transacción en curso
2010-06-03 16:33:00 CLT ERROR:  llave duplicada viola restricción de
unicidad «ratecltes_ndx»
2010-06-03 16:33:00 CLT SENTENCIA:  INSERT INTO ratecltes(id_rutas,
id_clte, rate) VALUES (1, 3, 60.0);
2010-06-03 16:33:00 CLT ERROR:  transacción abortada, las órdenes
serán ignoradas hasta el fin de bloque de transacción
2010-06-03 16:33:00 CLT SENTENCIA:  UPDATE ratecltes SET rate=60.0
WHERE (ratecltes.id_rutas=1 AND ratecltes.id_clte=3);


I hope I can help, not that I'm failing.

Reply via email to