On Tuesday, January 15, 2013 6:36:51 AM UTC-8, Rob Day wrote: > On 15 January 2013 07:09, llanitedave <llanited...@veawb.coop> wrote: > > > > > So I put the following test code in my initialization method: > > > > > > # open database file > > > self.geologger_db = sqlite3.connect('geologger.mgc') > > > self.db_cursor = self.geologger_db.cursor() > > > self.foreign_key_status = self.db_cursor.execute("PRAGMA foreign_keys = > > ON") > > > self.foreign_key_status = self.foreign_key_status.fetchone() > > > > > > print self.foreign_key_status > > > > > > I ran this several times while I was arranging the downstream queries, and > > each time it returned '(1,)', which means foreign keys is enabled. > > > > > > But I was using a variable named 'cmd1' as a placeholder until I changed > > the name to > > > the more descriptive 'self.foreign_key_status'. Since I made the name > > change, however, > > > the code only returns 'None'. Reverting to the previous variable name has > > no effect. > > > > Hmm - your code doesn't quite match up with the docs at > > http://docs.python.org/2/library/sqlite3.html. That seems to suggest > > that you should call fetchone() on the cursor, not on the result of > > execute(). > > > > Does the following 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") > > print self.db_cursor.fetchone() > > > > > > -- > > Robert K. Day > > robert....@merton.oxon.org
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. -- http://mail.python.org/mailman/listinfo/python-list