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? -- 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/