On Mon, Jan 19, 2009 at 12:40 PM, Ramiro Morales <cra...@gmail.com> wrote:

>
> On Mon, Jan 19, 2009 at 3:15 PM, Matias Surdi <matiassu...@gmail.com>
> wrote:
> >
> > The curious thing here, is that the above query works perfect running it
> > directly through sqlite3.
> >
>
> From what I have seen by reading DB backend source code, Django cursor's
> execute() method supports only the printf-like parmeter maker style with a
> list
> or tuple of actual parameters.
>
> If you want to use the pyformat parameter marking style (as described
> in PEP 249),
> you' ll need to use the native DB-API driver API as you've already
> discovered.
>
>
I didn't look at any code, I just tried a similar query on my own DB, using
current 1.0.X branch code:

k...@lbox:~/software/web/xword$ python manage.py shell
Python 2.5.1 (r251:54863, Jul 31 2008, 23:17:40)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.db import connection
>>> query = "SELECT * FROM Authors WHERE Author = %(name)s"
>>> parms = {'name': 'Manny Nosowsky'}
>>> cursor = connection.cursor()
>>> data = cursor.execute(query, parms)
>>> data
1L
>>> cursor.fetchall()
((4L, u'Manny Nosowsky', u'No', u''),)
>>>
>>>

That's using MySQL as the DB, so perhaps it is backend-specific?  The only
thing I needed to do to make the example shown originally work is remove the
quotes (and use table/column/parm names that exist in my DB).

Karen

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to