El día 23 de noviembre de 2010 19:17, Gustavo Cabral <gmcab...@gmail.com> escribió: > El día 23 de noviembre de 2010 14:20, Luis Miguel Morillas > <moril...@gmail.com> escribió: >> El día 23 de noviembre de 2010 15:34, Gustavo Cabral >> <gmcab...@gmail.com> escribió: >>> Hola: >>> Soy nuevo en esto y leí algunos artículos para comenzar con Python, >>> pero necesito con urgencia entender que significa el % en el código, >>> para ser más claro, tengo este pedazo de código, el cual retorna unos >>> valores de una BD, pero no logro entender para que se usa el "%": >>> >>> for i in ids: >>> #get the id of the current function of the employee of identifier "i" >>> sql_req= """ >>> SELECT f.id AS func_id >>> FROM hr_contract c >>> LEFT JOIN res_partner_function f ON (f.id = c.function) >>> WHERE >>> (c.employee_id = %d) >>> """ % (i,) >>> >>> Me podrían ayudar con esto? no entiendo el uso del "%" >>> Muchas Gracias. >>> >> >> >> El ejemplo está incompleto, pero me parece un poco raro. Como te >> comentan el "%" es un operador de sustitución de cadenas pero NO se >> debe de utilizar en las cadenas que se mandan a execute de un cursor >> si estás trabajando con bases de datos. Aquí tienes una explicación >> http://wiki.python.org/moin/DbApiFaq#HowdoIpassparameterstothecursor.executemethod.3F >> Si trabajas con bases de datos, tienes que usar el paramstyle del >> conector que estás usando. Y si vas a realizar múltiples consultas, >> mejor usar executemany que una serie encadenadas de execute, como >> parece que va a lanzar el ejemplo. > > Muchas Gracias, el código completo sería así: > > 1. for i in ids: > 2. #get the id of the current function of the employee of identifier > "i" > 3. sql_req= """ > 4. SELECT f.id AS func_id > 5. FROM hr_contract c > 6. LEFT JOIN res_partner_function f ON (f.id = c.function) > 7. WHERE > 8. (c.employee_id = %d) > 9. """ % (i,) > 10. cr.execute(sql_req) > 11. sql_res = cr.dictfetchone() > > Y según lo que me decís, la línea 9 del código tendría que ser: > > 9. """ , (i,) > > ¿Es cierto esto? > >
Eso es, pero siempre asegurándote de paramstyle de la base de datos que usas, que no todas utilizan el estilo 'format'. -- lm > -- > > Linux es Libertad > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/