видел статью по java, - там подготовленные выражения создаются из программы

вопрос - можно ли их создать из кода python?
Пока видимо никак. Обещают в версии модуля 1.3 (такущяя - 1.2.2).
Может если тока через odbc... (но не уверен).

Last edited Aug. 5, 2008, 1:45 a.m.

есть ли какие-то другие методы, чтобы можно было использовать подготовленные выражения в python?
Вообще говоря, это ведь команды SQL, поэтому:
import MySQLdb as mysql
con = mysql.connect(host ='localhost', user = '...', passwd = '...', db = '...')
cur = con.cursor()
cur.execute("PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';")
cur.execute("SET @a = 3, @b = 4;")
cur.execute("EXECUTE stmt1 USING @a, @b;")
print cur.fetchall()
Подробнее - читай доку по mysql
подготовленные выражения нужны, чтобы уменьшить время выполнения.
с помощью создания выражений через execute( SQL ) производительность увеличится незначительно.
получается, что вместо одного сложного запроса будет выполняться несколько по-проще.

для PHP есть модуль mysqli, в нём реализована работа с подготовленными выражениями с помощью C.
реализация происходит на более низком уровне, чем язык SQL.
подробнее можно посмотреть mysqli_api.c (поиск в файле по mysqli_prepare)

где-то мельком видел, что в ODBC может быть есть такая функциональность.
но, похоже, что в MySQLdb такого нет, а использовать надо именно его.
попробую посмотреть, есть ли такая функциональность в SQLAlchemy