[sqlite] Bindings problem

2008-04-29 Thread Alan Hyde
Hi

I'm new to Sqlite and Python and have hit a snag.

I have a function that receives a single parameter record that  
contains the contents for the column testdata

The program fails with the message:

Incorrect number of bindings supplied. The current statement uses 0,  
and there are 10 supplied

There are 10 chars in the string variable that gets passed...it looks  
like the code sees each char in the string as a separate binding?

The source is as follows:

def updateDb(record):
c.execute('INSERT INTO ardrecords (testdata) VALUES (?)', (record))



Thanks for the help.

Alan
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Bindings problem

2008-04-29 Thread Roger Binns
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Alan Hyde wrote:
 def updateDb(record):
   c.execute('INSERT INTO ardrecords (testdata) VALUES (?)', (record))

Short answer:  You should not be quoting the ? and are missing a comma
after record.

Long answer: Quoting the question mark inserts a question mark and is
not a binding.  Also SQL uses single quotes as standard for strings with
double quotes resulting in implementation specific behaviour.  (record)
is the same as record - to make it a sequence of the string you need to
use (record,).  The final result should be:

def updateDb(record):
  c.execute('INSERT INTO ardrecords (testdata) VALUES (?)', (record,))

Roger
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIF+mTmOOfHg372QQRAvyAAJoCflNdTK8SqaitpgDEVxxQrlKVFQCfdcyu
QTpI30wDGQKgyjHBhiTkiuA=
=ETTQ
-END PGP SIGNATURE-
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] Bindings problem

2008-04-29 Thread Alan Hyde
Thank you Roger - appreciated.


___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users