Уведомления

Группа в Telegram: @pythonsu

#1 Май 21, 2008 04:46:16

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Изменение сохраниния объектов в Алхимии + PL/SQL функции.

Привет всем.
Продолжаю мучить алхимию и потихоньку перстраивать свою базу данных. Решил, что создание Db (схемы, таблицы, правила…) я всё-равно буду делать вручную (набор скриптов на SQL и PL/SQL) – возможностей для тонкой настройки, всё-таки, больше и благо оно требуется только во время разработки.

Теперь вопрос. Можно ли влезть в сохраниение объекта из самого объекта. Т.е. у меня есть функция на PL/SQL, котороая создаёт пользователя и я хочу, чтобы во время session.save(VeryBabUser) вызывалась она, а не “INSERT INTO users.users…”? Дело в том, что у меня уже готова большАя часть логики на PL/SQL и мне не хочется её переписывать. Тем более, что скорость работы этих функций на порядки(!) выше – сам писал тесты, для выявления наиболее быстрого способа и библиотеки, могу собрать в кучку и кинуть, если кому интересно. Ну и, само собой, моя функция делает не только INSERT…

И я не смог найти способа, собственно вызова функций базы данных. Ткните пальцем в доку, а то я в ней уже заблудился…



Офлайн

#2 Май 21, 2008 10:21:47

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение сохраниния объектов в Алхимии + PL/SQL функции.

ZZZ
И я не смог найти способа, собственно вызова функций базы данных.
А в качестве триггера ее вызвать не получится?



Офлайн

#3 Май 22, 2008 01:36:46

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Изменение сохраниния объектов в Алхимии + PL/SQL функции.

slivlen
А в качестве триггера ее вызвать не получится?
Очень интересная мысль… только не понятная… Всё-таки бы чуток подробнее… Можно отправить в ман, не откажусь. С триггерами я вообще не работал, хотя и приблизительно представляю что это.
В принципе, мысль интересная. В Postgres это скорее правила… Блин, да это решение первой проблемы! Правда через жопу, но зато будет работать.

А вот как вызывать функции, мне по прежнему не понятно.



Офлайн

#4 Май 22, 2008 16:07:00

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение сохраниния объектов в Алхимии + PL/SQL функции.

:)
Например так:
session.execute(“select function();”)
если нужно чёт комитить, вызвать ещё
session.commit()

а можно:
session.scalar(func.function(arg1, arg2))
scalar - чтобы получить первое значение…



Отредактировано (Май 22, 2008 17:39:13)

Офлайн

#5 Май 23, 2008 02:51:22

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Изменение сохраниния объектов в Алхимии + PL/SQL функции.

ofigetitelno
session.execute(“select function();”)
Это я уже нашёл.

ofigetitelno
session.scalar(func.function(arg1, arg2))
scalar - чтобы получить первое значение…
А вот это то, что мне и нужно! Спасибо.



Офлайн

#6 Июль 4, 2008 11:19:54

PyCraft
От:
Зарегистрирован: 2008-05-23
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение сохраниния объектов в Алхимии + PL/SQL функции.

ofigetitelno
Например так:
session.execute(“select function();”)
если нужно чёт комитить, вызвать ещё
session.commit()

а можно:
session.scalar(func.function(arg1, arg2))
scalar - чтобы получить первое значение…
А в Django такое есть?



Офлайн

#7 Июль 4, 2008 15:36:20

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2255
Репутация: +  40  -
Профиль   Отправить e-mail  

Изменение сохраниния объектов в Алхимии + PL/SQL функции.

PyCraft
транзакции там есть

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version