On 7/19/05, David H <bluepaul@earthlink.net> wrote:
Hi list,
At times (it seems) necessary to force a Zope transaction commit. This
might occur between two zSQL calls where the second depends on the
first's *SQL* transaction's availability but the first has not yet been
commited because the *Zope* transaction that includes both zSQL calls
has not yet been commited.
I handled this with a call to an external script as below, eg
. zSql1()
. pyCommit()
zSql2()
Publish new page
Here's pyCommit()
# ...............................................................
# Extenstion/pyCommit.py
# ...............................................................
from ZODB import FileStorage,DB
def commit( self ):
t = get_transaction() # ZODB builtin
if t:
t.commit()
# ...............................................................
Thats it. And it solved my problem. Is there a reason why this is a bad
idea, all things being equal? A better way to do it, when needed?
you're playing with fire ;)
let zope handle the transaction
use <dtml-var sql_delimeter> to separate two or more sql calls
this way, if one of the call fails, the transaction will be aborted
gurus, correct me if i'm wrong, please
hth
Bakhtiar,