What about sqlite3_set_authorizer()? Implement a callback function and
monitor changes in transaction state for each connection object:

open_database(...) {
    ...
    sqlite3* db = ...
    connection_object* object = ...
    sqlite3_set_authorizer(db, auth_handler, (void*)object);
    ...
}

int auth_handler(  void* x, int type, const char* a, const char* b, 
                             const char* c, const char* d )
{
    connection_object* object = (connection_object*)x;

     if((a != NULL) && (type == SQLITE_TRANSACTION)) {

        if(strcmp(operation, "BEGIN") == 0) {
             object->autocommit = 1;
        }

        if(strcmp(operation, "COMMIT")==0) {
             object->autocommit = 0;
        }

        if(strcmp(operation, "ROLLBACK") {
             object->autocommit = 0;
        }
    }
}

On 5/18/05, Will Leshner <[EMAIL PROTECTED]> wrote:
> 
> On May 18, 2005, at 7:33 AM, Gerhard Haering wrote:
> 
> > Basically I would have that information already if I peeked in the
> > sqlite3 struct, right? But as pysqlite is not just for me
> > personally, I
> > cannot do such hacks ;-) I'd need an API call that returns that
> > flag for
> > me.
> 
> I would really like to see such an API call as well. I wonder if it
> wouldn't be as simple as just returning the autoCommit flag?
>

Reply via email to