On 2008-08-01 20:38, Thomas Guettler wrote:
I forgot to mention where I stumbled about this.

Django has a wrapper:
http://code.djangoproject.com/browser/django/trunk/django/db/backends/util.py

            def execute(self, sql, params=()):
                start = time()
                try:
                    return self.cursor.execute(sql, params)
                finally:

Most people don't have a percent sign in the variable sql.

I guess
    cursor.execute(sql, None)
is not portable for all database backends.

I guess this should be the best solution:
if params:
    return self.cursor.execute(sql, params)
else:
    return self.cursor.execute(sql)

What do you think?

Not good enough... you should use this:

            def execute(self, sql, params=None):
                start = time()
                try:
                    if params is None:
                        return self.cursor.execute(sql)
                    else:
                        return self.cursor.execute(sql, params)
                finally:
                    ...

  Thomas

Thomas Guettler schrieb:
Hi,

I discovered this:

import psycopg2
connection=psycopg2.connect("dbname='...' user='...'")
cursor=connection.cursor()
cursor.execute('''SELECT '%' ''') # Does not fail
cursor.execute('''SELECT '%' ''', ()) # Does fail

Traceback (most recent call last):
  File "/localhome/modw/tmp/t.py", line 5, in <module>
    cursor.execute('''SELECT '%' ''', ()) # Does fail
IndexError: tuple index out of range

Is this a bug in psycopg2?

How do other PEP 249 implementation behave?

 Regards,
   Thomas

--
http://mail.python.org/mailman/listinfo/python-list

--
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Aug 01 2008)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

:::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to