What is the recommended python module for SQL database access?

Asaf Las roegltd at gmail.com
Sun Feb 9 14:27:01 CET 2014


On Sunday, February 9, 2014 3:14:50 PM UTC+2, Chris Angelico wrote:
> On Sun, Feb 9, 2014 at 11:47 PM, Asaf Las <r... at gmail.com> wrote:
> 

Thanks

> 
> Also, you're connecting and disconnecting repeatedly... oh, I see why
> it didn't work when I tried. You're also using two completely
> different database names: 'messageid.db' which is named in a constant
> and in the default argument, and 'example.db' which is what you
> actually use. Should have a single source of truth, otherwise you
> confuse the people who might otherwise be able to test your code :)

my apologies , it was deep night, when i got disappointed and forget to 
update names so left as it is and did not check when posted :-) 

> Anyway. This code is extremely inefficient:
> 
> >        conn = sqlite3.connect('example.db', 10.0, True, "EXCLUSIVE")
> >        c = conn.cursor()
> >        c.execute("SELECT val FROM msgid WHERE id = 0")
> >        tint = int(c.fetchone()[0]) + 1
> >        c.execute("UPDATE msgid SET val={0} WHERE id = 0".format(tint))
> >        conn.commit()
> >        conn.close()
> 
> Much more common would be to retain a connection and repeatedly
> perform queries. Then you won't need to open it EXCLUSIVE, and you can
> simply query, update, and then commit (all your locks should be
> released at the commit). Do that, and you should see at least
> reasonable performance, plus everything should work correctly.
> ChrisA

i did it just to test sqlite3 behavior and actually test was related to
simulation of  unique incremental sequence number/counter for 
independently spawned tasks accessing counter in non deterministic manner. 

/Asaf



More information about the Python-list mailing list