Andre' John wrote: > Hi > > I am trying to do this for a Postgresql database: > > conn = psycopg2.connect('host=localhost') > cur = conn.cursor() > cur.execute("SELECT * FROM names WHERE name=%s", ['S']) > > , which doesn't work, and neither does > > cur.execute("SELECT * FROM names WHERE name='%s'", ['S']) > > or > > cur.execute("SELECT * FROM names WHERE name='S'") > > work.
I'm more inclined to believe the first two than the third, but I suppose if you are telling the truth (House: "Patients always lie") then I am guessing you have defined your table's "names" columns to be an array type. I haven't worked with those (since they don't confirm to the strict relational model I prefer to work with), but I am guessing you might try cur.execute("SELECT * FROM names WHERE name='%s'", (['S'], )) as this provides the necessary tuple as the second argument to execute, and the on;y element of the tuple is a list of a single element. > It always returns: > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > psycopg2.ProgrammingError: array value must start with ?{½ or > dimension information > > > Though, when doing > > cur.execute("SELECT * FROM names") > > it works. > I am totally helpless here. Does anyone have an idea? > If my suggestion doesn't work, you should probably let us know more about the structure of your table. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ -- http://mail.python.org/mailman/listinfo/python-list