Компиляция операторов sqlalchemy с именованными параметрами - PullRequest
1 голос
/ 25 февраля 2012

Это продолжение до Преобразовать операторы ядра sqlalchemy в необработанный SQL без подключения? .Я хотел бы использовать вставку с именованными аргументами, но без их выполнения через SQLA.

У меня есть оператор вставки, определенный следующим образом:

table = Table("table", meta_data,
             Column("id", Integer, auto_increment=True, primary_key=1),
             Column("name", String),
             Column("full_name", String))
params = {"full_name": "some_name", "name": "some_other_name"}
stmt = sqlalchemy.sql.expression.insert(table).values(params)
c_stmt = stmt.compile(dialect=dialect)

Позже я бы выполнил этот оператор через DBAPIподключение.Как я могу гарантировать, что позиция между сгенерированной строкой sql и моим набором параметров является согласованной?

1 Ответ

0 голосов
/ 01 августа 2012

Большинство механизмов SQL (все?) Поддерживают именованные параметры связывания, а также позиционные параметры, и SA предоставляет интерфейс (bindparam, достаточно забавно) для этого. В SA Docs есть раздел с примерами, которые, вероятно, будут соответствовать вашим потребностям. Конечно, в примерах предполагается, что вы выполняете запросы с SA, поэтому вам нужно будет интерпретировать их для вашего варианта использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...