Tuesday, 15 June 2010

python - How to tell whether an update statement is successful in pysqlite 2.6.3 -



python - How to tell whether an update statement is successful in pysqlite 2.6.3 -

i'm using pysqlite talk sqlite db, , wonder right way check whether update sql statement has update in table.

is there variable can check after execution in pysqlite?

check cursor.rowcount attribute; it'll indicate number of affected rows.

if update not successful rowcount 0:

>>> conn = sqlite3.connect(':memory:') >>> conn.execute('create table foo (bar, baz)') <sqlite3.cursor object @ 0x1042ab6c0> >>> conn.execute('insert foo values (1, 2)') <sqlite3.cursor object @ 0x1042ab730> >>> cursor = conn.cursor() >>> cursor.execute('update foo set baz=3 bar=2') <sqlite3.cursor object @ 0x1042ab6c0> >>> cursor.rowcount 0 >>> cursor.execute('update foo set baz=3 bar=1') <sqlite3.cursor object @ 0x1042ab6c0> >>> cursor.rowcount 1

of course, if seek update table or column doesn't exist, exception thrown instead:

>>> cursor.execute('update nonesuch set baz=3 bar=2') traceback (most recent phone call last): file "<stdin>", line 1, in <module> sqlite3.operationalerror: no such table: nonesuch >>> cursor.execute('update foo set nonesuchcolumn=3 bar=2') traceback (most recent phone call last): file "<stdin>", line 1, in <module> sqlite3.operationalerror: no such column: nonesuchcolumn

i used sqlite3 library included python demo this; pysqlite2 added python under name in python 2.5. difference simply import:

try: import sqlite3 # included library except importerror: pysqlite2 import dbapi2 sqlite3 # utilize pysqlite2 instead

python sqlite pysqlite

No comments:

Post a Comment