sqlite3 puzzle

Rob Day robert.day at merton.oxon.org
Tue Jan 15 18:13:13 CET 2013

On 15 January 2013 15:51, llanitedave <llanitedave at veawb.coop> wrote:
> Thanks for the suggestion, Rob, but that didn't make any difference.  I've never had an issue with putting the execute object into a variable and calling "fetch" on that variable.
> I can accept reality if it turns out that foreign keys simply isn't enabled on the Python distribution of sqlite, although I don't know why that should be the case.  I'm just curious as to why it worked at first and then stopped working.

Well - you might be able to accept that, but I'm not sure I can! If it
was working before, it must be compiled in, and so it must be possible
to make it work again.

http://www.sqlite.org/foreignkeys.html#fk_enable seems to suggest that
"PRAGMA foreign_keys = ON" never returns anything, and it's only
"PRAGMA foreign_keys" which returns 0, 1 or None (when unsupported).
With that in mind, does the following code work?

# open database file

self.geologger_db = sqlite3.connect('geologger.mgc')
self.db_cursor = self.geologger_db.cursor()
self.db_cursor.execute("PRAGMA foreign_keys = ON")
self.db_cursor.execute("PRAGMA foreign_keys")
print self.db_cursor.fetchone()

More information about the Python-list mailing list