Seite 1 von 1

Autocommit bei SQLAlchemy?

Verfasst: Mittwoch 14. Februar 2007, 07:46
von Y0Gi
Ich habe mir mittlerweile einen Wolf gesucht, aber ich werde nicht richtig draus schlau. Aus einigen Gründen möchte ich sehr gerne Autocommits nutzen, wie ich sie von SQLObject gewohnt bin - geht aber scheinbar nicht.

Kann mir da wer genaueres zu sagen? Sind das technische oder festgelegte Einschränkungen? Ist sowas DB-spezifisch und wird daher vielleicht gar nicht von SA angeboten? Oder geht es doch irgendwie?

Sachdienliche Hinweise werden händeringend entgegen genommen :)

Verfasst: Mittwoch 14. Februar 2007, 09:55
von jens
Also ich denke man sollte immer auf autocommit verzichten. Ansonsten kann man nie Transaktionen realisieren.

Verfasst: Mittwoch 14. Februar 2007, 14:07
von birkenfeld
Ich würde auf autocommits auch grundsätzlich verzichten. Es gibt doch genügend andere Möglichkeiten, komfortabel zu arbeiten.

Pocoo nutzt z.B. Transaktionsfunktionen, so wie diese hier:

Code: Alles auswählen

        def do(con):
            result = con.execute(users.insert(),
            (...)
            )
            return whatever

        res = engine.transaction(do)

Verfasst: Mittwoch 14. Februar 2007, 18:56
von Y0Gi
jens hat geschrieben:Also ich denke man sollte immer auf autocommit verzichten. Ansonsten kann man nie Transaktionen realisieren.
Huh? Nee. Im Falle von SQLObject habe ich immer autocommits und kann diese bei Bedarf aussetzen (Quelle):

Code: Alles auswählen

conn = DBConnection.PostgresConnection('yada')
trans = conn.transaction()
p = Person.get(1, trans)
p.firstName = 'Bob'
trans.commit()
p.firstName = 'Billy'
trans.rollback()
Was mich eben stört ist, dass ich jetzt neben den eigentlichen Model-Klassen auch noch ein Connection-/Context-/Session-/sonstwas-Objekt importieren und mitschleppen muss. Gibt's da noch weitere schicke Lösungsvorschläge?