I am working with Python 3.4.3 on Ubuntu 14.04.
I am learning tkinter so I decided to rewrite a program I had written in
pythoncard in tkinter. I found that a sqlite3 SELECT statement that
works in pythoncard throws an error in tkinter and am wondering why?
# Fill the accounts listbox from the passwords database
def fill_accounts_lb(category):
conn = sqlite3Connect()
cur = conn.cursor()
#cur.execute('''SELECT Account FROM pwds WHERE Category=? ORDER BY
Account COLLATE NOCASE''', category) (1)
cur.execute('''SELECT Account FROM pwds WHERE Category='%s' ORDER BY
Account COLLATE NOCASE'''
% category)
result = [row[0] for row in cur.fetchall()]
clearListbox()
for account in result:
lb_accounts.insert(END, account)
conn.close()
(1)
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.4/tkinter/__init__.py", line 1536, in __call__
return self.func(*args)
File "tk_pwds.py", line 22, in rbCall
fill_accounts_lb('WebSites')
File "tk_pwds.py", line 56, in fill_accounts_lb
cur.execute('''SELECT Account FROM pwds WHERE Category=? ORDER BY
Account COLLATE NOCASE''', category)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The
current statement uses 1, and there are 8 supplied.
I cut the working statement from pythoncard and pasted it into tkinter
and am curious why it works in the pythoncard version and not the
tkinter version. I'm not sure where it is coming up with the 8 bindings
it said are supplied?
Thanks, Jim
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor