I'm just beginning to enter into the field of database and SQLite in particular.

Python 2.7 on Ubuntu

The problem code is a class method defined as follows:


    def insert(self, DataBase=DataBase, Table=Table):
        """
        Insert instance of ClassMate into <DataBase> <Table>.
        """
        con = sqlite3.connect(DataBase)
        with con:
            cur.execute("""INSERT INTO %s VALUES
            (NULL, '%s', '%s', '%s', '%s', '%s', '%s');""" % \
            (Table, self.first, self.last, self.partner,
            self.address, self.phone, self.email, )      )
            try:
                cur.execute("COMMIT;")
            except:
                pass

And the problem = \
"""
If the 'cur.execute("COMMIT;")' statement is left by itself, outside of a
"try/except" clause, I get an error with the following trace back:
"
Traceback (most recent call last):
  File "./uwomeds68.py", line 119, in <module>
    go_on.insert()
  File "./uwomeds68.py", line 64, in insert
    cur.execute("COMMIT;")
sqlite3.OperationalError: cannot commit - no transaction is active
"

Without the COMMIT, there's no error but the data doesn't get added to the data base.
"""

I've been reading about the COMMIT directive but apart from its relationship with ROLLBACK, I haven't been able to figure out how it is relevant to my problem here.

Any advice/explanation would of course be appreciated.

Alex Kleider
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to