Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2008 11:28:06

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb: можно ли изменить paramstyle?

строка

    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?



Офлайн

#2 Авг. 13, 2008 12:14:01

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

MySQLdb: можно ли изменить paramstyle?

However, the API does not presently allow the specification of more than one style in paramstyle.
Ну раз так пишут то, наверное, нельзя.

Офлайн

#3 Авг. 13, 2008 12:19:02

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb: можно ли изменить paramstyle?

У меня тоже не работает



Офлайн

#4 Авг. 18, 2008 12:49:04

ods
От:
Зарегистрирован: 2007-03-03
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb: можно ли изменить paramstyle?

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), но драйвер вам сообщить только об одном из них.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version