Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
04.03.2011, 20:47
|
|||
|---|---|---|---|
|
|||
NHibernate: как вызывать ХП Oracle при каждом новом соединении с БД? |
|||
|
#18+
Доброго времени суток В базе данных имеется внутренняя система безопасности (таблицы пользователей, привилегий и т.д.). Написан набор хранимых процедур для создания/изменения/удаления записей. После подключения к БД нужно вызвать процедуру а-ля "Login(db_user, db_user_password)". Когда клиент вызывает ХП управления записями (типа "ArticleUpdate", "DepartmentInsert" и т.д.) внутри этих ХП происходит проверка права пользователя на выполнение данной ХП. Т.е. не пользователя Oracle, а пользователя из внутренней таблицы пользователей БД. Прочитал "NHibernate in action", сделал несколько тестовых примеров, но на вопрос ответа не нашел. Если в NHibernate каждый сеанс изменения свойств объекта выполняется в рамках отдельного подключения к БД, то придется каждый раз "логиниться", а это затратно. Соответственно, первый вопрос: как это сделать так, чтобы логиниться (по сути - выполнять некую ХП или набор ХП) перед операциями над объектом, но когда NHibernate уже получил из пула соединение с БД? И второй вопрос: как вообще решается задача сохранения/активации подключения к БД в NHibernate? Т.е. чтобы не приходилось каждый раз заниматься инициализацией структур данных "пользовательской сессии" внутри базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2011, 10:32
|
|||
|---|---|---|---|
NHibernate: как вызывать ХП Oracle при каждом новом соединении с БД? |
|||
|
#18+
JohnSparrow, Самый простой вариант - это открывать сессию, передавая ей заранее открытое соединение. Сессия не будет его закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=17&mobile=1&tid=1350869]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 468ms |

| 0 / 0 |
