On 9/3/2011 3:03 AM, Carl Banks wrote:
On Friday, September 2, 2011 11:43:53 AM UTC-7, Tim Arnold wrote:
Hi,
I'm using the 'with' context manager for a sqlite3 connection:

with sqlite3.connect(my.database,timeout=10) as conn:
              conn.execute('update config_build set datetime=?,result=?
where id=?',
                                (datetime.datetime.now(), success,
self.b['id']))

my question is what happens if the update fails? Shouldn't it throw an
exception?

If you look at the sqlite3 syntax documentation, you'll see it has a SQL 
extension that allows you to specify error semantics.  It looks something like 
this:

UPDATE OR IGNORE
UPDATE OR FAIL
UPDATE OR ROLLBACK

I'm not sure exactly how this interacts with pysqlite3, but using one of these 
might help it throw exceptions when you want it to.


Carl Banks

I see now. You can use 'update or fail' if you have the extensions built in: http://docs.python.org/library/sqlite3.html#f1

example of use, line 76:
http://projects.developer.nokia.com/TECwidget/browser/data/montreal/updsqlite.py?rev=7ca2ebd301ed1eff0e2c28283470db060b872cd6

For my case, however, I'll follow Ian's advice and check on the rowcount after the update.

thanks for the explanation and advice,
--Tim
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to