|
Модераторы: Daevaorn |
|
dipsy |
|
|||
Опытный Профиль Группа: Участник Сообщений: 283 Регистрация: 13.1.2005 Где: Нижний Новгород Репутация: нет Всего: нет |
смотрю http://mail.python.org/pipermail/db-sig/20...ary/004616.html
письму более 2-х лет. введено ли в питон создание подготовленных выражений, как стандартная функциональность? можно ли в python создавать подготовленные выражения для MySQL вообще? |
|||
|
||||
americanets |
|
||||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: нет Всего: 12 |
что ты имеешь ввиду ?
то да
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||||
|
|||||||
dvska |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 182 Регистрация: 30.1.2006 Репутация: нет Всего: 9 |
dipsy Стандарт см. http://www.python.org/dev/peps/pep-0249/
А реализован он в каждом драйвере по-разному. --------------------
|
|||
|
||||
dipsy |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 283 Регистрация: 13.1.2005 Где: Нижний Новгород Репутация: нет Всего: нет |
americanets, имею в виду операторы mysql вида:
dvska, я смотрел документацию. пишут:
хотя они и говорят prepare, но реально в коде функции execute выражение не подготавливается, а просто подставляется значение параметров в запрос, после чего запрос выполняется:
|
||||||
|
|||||||
americanets |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: нет Всего: 12 |
dipsy, а как ты представляешь себе работу Prepare ?
так и есть подставляет значения -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
dipsy |
|
|||
Опытный Профиль Группа: Участник Сообщений: 283 Регистрация: 13.1.2005 Где: Нижний Новгород Репутация: нет Всего: нет |
americanets, в питоне просто подставляет значения.
в java - создаёт подготовленное выражение в базе и уже к нему обращается. т.е. к созданному подготовленному выражению можно обратиться по собственному имени в коде java. после вызова sql запроса prepare, в БД сохраняется распарсенный запрос. соответственно, обрабатывается он быстрее, чем просто запросы. |
|||
|
||||
americanets |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: нет Всего: 12 |
не путаешь с хранимыми процедурами ? -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
dipsy |
|
|||
Опытный Профиль Группа: Участник Сообщений: 283 Регистрация: 13.1.2005 Где: Нижний Новгород Репутация: нет Всего: нет |
взято с http://www.javable.com/tutorials/tjt/jdbc/...s/prepared.html при помощи кэша google:
создаётся поготовленное выражение - суть PREPARE в SQL |
|||
|
||||
americanets |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: нет Всего: 12 |
Добавлено через 24 секунды http://www.devshed.com/c/a/Python/MySQL-Co...-With-Python/5/ Добавлено через 7 минут и 21 секунду а вот тут лучше http://www.sqlalchemy.org -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
dipsy |
|
||||
Опытный Профиль Группа: Участник Сообщений: 283 Регистрация: 13.1.2005 Где: Нижний Новгород Репутация: нет Всего: нет |
americanets, фишка не в создании нескольких запросов, а в том, что в БД должен сохраняться распарсенный запрос.
executemany и execute только выполняют запрос, но они его не подготавливают в смысле SQL prepare. более полно, кусок кода функции execute:
если бы выполнялась prepare, то query должен был бы модифицироваться. чтобы получалось выражения вида
в функции execute это не происходит. то же и в функции executemany. они не создают подготовленных выражений, они только выполняют запросы. в SQLAlchemy не нашёл способа создания preparedstatements |
||||
|
|||||
americanets |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: нет Всего: 12 |
http://www.zoonman.com/library/mysql_sr_and_t.htm
это не от языка зависит, это хранимые процедуры
http://dev.mysql.com/doc/refman/5.0/en/sql...statements.html Добавлено через 21 секунду http://www.zoonman.com/library/mysql_sr_and_t.htm -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
dipsy |
|
|||
Опытный Профиль Группа: Участник Сообщений: 283 Регистрация: 13.1.2005 Где: Нижний Новгород Репутация: нет Всего: нет |
americanets, от языка зависит. в java есть возможность работы с prepare, в python похоже, стандартных возможностей нет.
возможно, что реализуется в ODBC, но мне надо использовать MySQLdb хранимые процедуры это не подготовленные выражения. процедуры хранятся в базе постоянно. подготовленные выражения хранятся, видимо, пока открыто соединение хранимая процедура может содержать логику, переменные, создавать временные таблицы и много ещё чего подготовленное выражение - для выполнения одного запрос к БД по аналогии, как реальная функция отличается от функции lambda |
|||
|
||||
americanets |
|
||||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: нет Всего: 12 |
тут у тебя нет никаких подготовленных запросов
у тебя шаблон запроса и массивы данных, они также поставляются только в цикле и получается обычный запрос
и т д 5 штук вот и все. это просто реализация которая возможна в любом языке Добавлено через 5 минут и 7 секунд
-------------------- Пусть популярную музыку слушают те, среди кого она популярна |
||||||
|
|||||||
dipsy |
|
|||
Опытный Профиль Группа: Участник Сообщений: 283 Регистрация: 13.1.2005 Где: Нижний Новгород Репутация: нет Всего: нет |
да, в этом частном примере с java могу ошибаться.
да, в любом языке может быть реализована работа с шаблонами. и в python она реализована как стандартная функциональность. но. есть такая конструкция в mysql, как подготовленные выражения уверен, что есть языки, которые умеют по-умолчанию работать с подготовленными выражениями, а не только с шаблонами. и мне надо выяснить возможность работы с подготовленными выражениями в python при использовании библиотеки MySQLdb. если в ближайшее время не найду готового решения, то мне придётся писать эту функциональность (для закрытого проекта) |
|||
|
||||
americanets |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: нет Всего: 12 |
это язык SQl -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Базы данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |