Okay, I've got this now: > con = sqlite3.connect(":memory:") > cur = con.cursor() > cur.execute("""CREATE TABLE db.table(col.a integer, col.b text)""") > con.executemany("""INSERT INTO db.table(col.a, col.b) VALUES (?, ?)""", m) > con.commit()
> for row in con.execute("""SELECT col.a, col.b FROM db.table"""): > print row > # when run, all rows are printed correctly but as unicode strings > q = "dog" > for row in con.execute("""SELECT col.b FROM db.table WHERE col.b LIKE ? LIMIT > 25""", q): > print row .. And, I get the following error: Traceback (most recent call last): for row in con.execute("SELECT col.b FROM db.table WHERE col.b LIKE ? LIMIT 25", q): ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 3 supplied. As Python/pysqlite stores the items in the db.table as unicode strings, I've also run the code with q=u"dog" but get the same error. Same with putting the q as a tuple ie. (q) in the Select statement. Btw, there are 73 instances of the substring 'dog' in db.table. Cheers Dinesh
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor