LIKE pyPqSQL SOLUCIONADO

FERNANDO VILLARROEL fvillarroel en yahoo.com
Lun Feb 14 15:39:31 CET 2005


Hola Marcos probe lo siguiente:

cur.execute(q, (c,)) # No est? probado, mirar docu

...no corrio, pero si de la siguiente forma:

cur.execute(q % c)

Fernando
--- Marcos S?nchez Provencio <rapto en arrakis.es> wrote:

> Si tienes que lanzarla varias veces, ir? m?s r?pida
> si utilizas
> par?metros en la consulta:
> c=self.rzd+'%'
> 
> q="select a.cclte, a.razonsocial,a.direccion,
> a.telefono1, b.descripcion \
> from cltescred as a, comunas as b  \
> where a.ccomuna=b.ccomuna and a.razonsocial \
> like %s"
> 
> cur.execute(q, (c,)) # No est? probado, mirar docu
> 
> En la mayor?a de los gestores de BD, de este modo el
> sql que llega al
> servidor es siempre el mismo, con lo que el an?lisis
> del sql y
> optimizaci?n de la consulta se guardan de una
> llamada a la siguiente,
> sustituyendo tan solo el valor de los par?metros.
> Adem?s, tienes la
> ventaja de que te ahorras fallos de inyecci?n de sql
> y errores de
> sinaxis si la cadena original contiene comillas.
> 
> El vie, 11-02-2005 a las 18:14 -0800, FERNANDO
> VILLARROEL escribi?:
> > Hola lo solucione de la siguiente forma:
> > 
> > self.rzd (es la cadena a buscar)
> > 
> > c=self.rzd+'%'
> > 
> >  q="select a.cclte, a.razonsocial,a.direccion,
> > a.telefono1, b.descripcion \
> > from cltescred as a, comunas as b  \
> > where a.ccomuna=b.ccomuna and a.razonsocial \
> > like '%s' " % c
> > 
> > cur.execute(q)
> > 
> > y listo la clave esta en la concatenacion de la
> cadena
> > a buscar + "%"
> > 
> > Lo Posteo por si alguien se tropieza con este
> problema
> > 
> > Saludos
> > Fernando
> > --- FERNANDO VILLARROEL <fvillarroel en yahoo.com>
> wrote:
> > 
> > > Te quedara algo ms o menos as:
> > > 
> > > q="select a.cclte, a.razonsocial,a.direccion,
> > > a.telefono1, 
> > > b.descripcion \
> > >  from cltescred as a, comunas as b  \
> > > where a.ccomuna=b.ccomuna and a.razonsocial \
> > >  like '%%%s' " % self.rzd
> > > 
> > > Hola probe con es te script,pero sigo con error,
> > > pero
> > > ahora a nivel de libpq:
> > > 
> > > ERROR: syntax error at or near "'%fer'" at
> character
> > > 241
> > > 
> > > Tambien probe con (self.rzd,) pero me tira el
> mismo
> > > error.
> > > 
> > > No se lo probe en la base de datos y alla el
> script
> > > funciona de la siguiente manera:
> > > 
> > > cargas=# select a.razonsocial, b.descripcion 
> from
> > > cltesctdo as a, comunas as b where razonsocial
> like
> > > 'E%' and a.ccomuna=b.ccomuna;
> > >  razonsocial | descripcion
> > > -------------+-------------
> > >  ENTEL       | santiago
> > > (1 row)
> > > 
> > > cargas=#
> > > 
> > > Esto me muestra todos los clientes cuya razon
> social
> > > cominece con la letra E.
> > > 
> > > 
> > > Fernando
> > > 
> > > 
> > > 		
> > > __________________________________ 
> > > Do you Yahoo!? 
> > > The all-new My Yahoo! - Get yours free! 
> > > http://my.yahoo.com 
> > >  
> > > 
> > > >
> _______________________________________________
> > > Python-es mailing list
> > > Python-es en aditel.org
> > > http://listas.aditel.org/listinfo/python-es
> > > 
> > 
> > 
> > 
> > 		
> > __________________________________ 
> > Do you Yahoo!? 
> > Meet the all-new My Yahoo! - Try it today! 
> > http://my.yahoo.com 
> > 
> > 
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es