On Apr 16, 2007, at 6:53 PM, George Sakkis wrote:
>
> On Apr 16, 12:18 pm, Alberto Valverde <[EMAIL PROTECTED]> wrote:
>> On Apr 16, 2007, at 5:54 PM, George Sakkis wrote:
>>
>>
>>
>>> Is there any way I can force a COMMIT within an exposed method ?
>>> I am
>>> using SqlAlchemy with PostgreSQL and I am creating a few records
>>> that
>>> I need to use for subsequent SELECTs within the same method.
>>> Although
>>> I do flush() them and get their assigned IDs, subsequent explicit
>>> SELECTs (using SA's select(), not the data mappers) fail to see the
>>> changes.
>>
>> How are you obtaining the engine when you use SA's select? You should
>> use the same connection the transaction is using so you see its
>> changes, check out [1]
>
> I use:
>
> from turbogears import database as db
> engine=db.get_engine()
>
> How can I access the implicit transaction created by TG or its
> connection object ?
You'll need access to the transaction instance. Unfortunately it's a
local variable inside database.sa_rwt. Perhaps it should be bound to
cherrypy.request so you could do:
connection = engine.connect()
cherrypy.request.sa_transaction.add(connection)
then connection.execute(table.select()) # or whatever
as described in the mentioned link. Can you try this patch see if it
works?
Index: turbogears/database.py
===================================================================
--- turbogears/database.py (revision 2824)
+++ turbogears/database.py (working copy)
@@ -336,7 +336,8 @@
[run_with_transaction.when("_use_sa()")]
def sa_rwt(func, *args, **kw):
log.debug("New SA transaction")
- transaction = session.create_transaction()
+ req = cherrypy.request
+ transaction = req.sa_transaction = session.create_transaction()
try:
retval = func(*args, **kw)
transaction.commit()
Alberto
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---