On Jan 30, 5:02 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:

> What's happening above is the session is not in a transaction due to 
> autocommit, so when you call session.connection(), that connection is thrown 
> away as far as the Session is concerned.   If you wanted to do it the 
> "external" way like that, you need to set session.bind = connection, then the 
> Session will do everything in terms of that connection.  You could skip the 
> autocommit/begin/flush and just do a single session.commit(), which from the 
> tx point of view would not be the actual commit.
>
> Session has a public API for this, though it doesn't at the moment accept the 
> XID, but you can grab the one it generates:
>
> session = sessionmaker(engine)
> session.prepare()
> session.add(obj1)
> session.flush()

The prepare() should be called _before_ issuing changes to the DB? I
thought it was a substitute for the first commit()... Anyway, so after
the flush the transaction will be in a "prepared" state and waiting
for the COMMIT PREPARED? I'll try it, thanks :)

> either way should work, but turning on SQL echo is the best way to see what 
> is/is not happening.

Yes I have echo active but it looks like I misunderstood the sequence
of commands to give :/

Many thanks for your time!

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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.

Reply via email to