On Oct 14, 2010, at 11:40 AM, Juan Antonio Ibáñez wrote: > Hello! > > I am dealing with Turbogears and SQL Alchemy. I need to make one > import from a CSV file to a MySQL DB. I need also to controll which > rows fails on import. I am working with the next code inside a loop: > > ------------------------ > try: > session.begin(subtransactions=True) > session.add(importe) > session.flush() > nimportados += 1 > except Exception as ex: > log.debug(ex) > session.rollback() > nerroneos += 1 > ------------------------ > > During exec I get: > > ------------------------- > 12:55:45,598 INFO [sqlalchemy.engine.base.Engine.0x...f1ac] BEGIN > 12:55:45,600 INFO [sqlalchemy.engine.base.Engine.0x...f1ac] INSERT > INTO importes (tarifas_id, prefijo, destino, importe, tipo, pc, psi, > ps, sg) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) > 12:55:45,600 INFO [sqlalchemy.engine.base.Engine.0x...f1ac] [u'1', > 'PREFIJO', 'DESTINO', 'IMPORTE', u'', 0, 60, 60, 0] > 12:55:45,601 INFO [sqlalchemy.engine.base.Engine.0x...f1ac] ROLLBACK > 12:55:45,603 DEBUG [svbpanel.controllers] (IntegrityError) (1062, > "Duplicate entry 'PREFIJO' for key 'prefijo'") u'INSERT INTO importes > (tarifas_id, prefijo, destino, importe, tipo, pc, psi, ps, sg) VALUES > (%s, %s, %s, %s, %s, %s, %s, %s, %s)' [u'1', 'PREFIJO', 'DESTINO', > 'IMPORTE', u'', 0, 60, 60, 0] > 12:55:45,603 DEBUG [svbpanel.controllers] The transaction is inactive > due to a rollback in a subtransaction. Issue rollback() to cancel > the > transaction. > ------------------------- > > Peopel on TG2 group told me about the appearance of not init the > subtransaction. > I thing TG2 init a own transaction in an automatic way so I should > work with subtransactions (I think) > > Commiting instead flushing doesn't work... > Any idea about this problem?
perhaps you're looking for SAVEPOINT ? The Session provides this via begin_nested(). begin(subtransactions=True) is only an in-Python nesting concept. > > Regards > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to sqlalch...@googlegroups.com. > To unsubscribe from this group, send email to > sqlalchemy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.