Найти - Пользователи
Полная версия: MySQLdb: можно ли изменить paramstyle?
Начало » Базы данных » MySQLdb: можно ли изменить paramstyle?
1
axe
строка
    req.write( MySQLdb.paramstyle )
выдаёт значение “format”. т.е. задано форматирование в стиле языка ANSI C (например, “%s”, “%i”).

в документации пишут:
However, the API does not presently allow the specification of more than one style in paramstyle.
попробовал указать
     MySQLdb.paramstyle = "qmark"
и составить запрос со знаками “?”, - не работает.

можно ли менять paramstyle?
Ferroman
However, the API does not presently allow the specification of more than one style in paramstyle.
Ну раз так пишут то, наверное, нельзя.
shiza
У меня тоже не работает
ods
paramstyle указывает стиль задания параметров, который понимает драйвер. Приличные СУБД вообще передают на сервер запрос с placeholder-ами данные для подстановки в него отдельно (и правильно делают, с точки зрения защиты от SQL injection), в таких случаях paramstyle описывает то, с чем умеет работать сервед баз данных, а не драйвер. В общем-то набор возможных значений paramstyle определяется стилями, используемыми в различных СУБД, плю 2 формата, для которых легко зашить данные в запрос в питоне на случаи если СУБД использует какой-то редкий формат или не позволяет передавать запрос и данные отдельно.
Ferroman
However, the API does not presently allow the specification of more than one style in paramstyle.
Ну раз так пишут то, наверное, нельзя.
Эта фраза немного о другом. Некоторые СУБД могут поддерживать несколько стилей задания placeholer-ов. Но при написании к нему DB API драйвера придётся ограничиться каким-то одним, так как нет возможности указать, что драйвер поддерживает ещё какой-то формат. Например, Oracle использует named, но при этом позволяет биндить параметры как по имени, так и по позиции (условно его можно назвать numeric), но драйвер вам сообщить только об одном из них.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB