On 20 Sep 2005 at 22:12, Kevin Dangoor wrote:

> On 9/20/05, Brad Clements <bkc@murkworks.com> wrote:
> > I have a slightly modified firebirdconnect.py module that uses gvib (I need
> > transaction support).
>
> Interesting. I've never heard of gvib (granted, I've only been using
> Firebird for a couple of months). I'm pretty certain I've been using
> transaction, though. Did I misunderstand you, or are you saying the
> kinterbasdb doesn't do transactions?

the sqlobject version of firebirdconnection has this code,

class FirebirdConnection(DBAPI):

    supportTransactions = False

(snip)

    def _runWithConnection(self, meth, *args):
        if not self.autoCommit:
            return DBAPI._runWithConnection(self, meth, args)
        conn = self.getConnection()
        # @@: Horrible auto-commit implementation.  Just horrible!
        try:
            conn.begin()
        except kinterbasdb.ProgrammingError:
            pass
        try:
            val = meth(conn, *args)
            try:
                conn.commit()
            except kinterbasdb.ProgrammingError:
                pass
        finally:
            self.releaseConnection(conn)
        return val

    def _setAutoCommit(self, conn, auto):
        # Only _runWithConnection does "autocommit", so we don't
        # need to worry about that.
        pass


--
Brad Clements,                bkc@murkworks.com    (315)268-1000
http://www.murkworks.com                         
AOL-IM or SKYPE: BKClements