Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
D6,SP1,2 MSSQL2000 без серв.паков, но та же задача на VB работала => проблема в дельфи форма. TADOConnection.Open; set_applicationrole через TADOCommand .... TADOConnection.Close //проверка состояния - дельфи считает что закрыто, но ЕМ показывает что нет. TADOConnection.Open; //проверка состояния - дельфи считает что открыто, ЕМ - тоже. set_applicationrole через TADOCommand - естественно ошибка, т.к. соединение осталось прежнее, а для set_applicationrole надо каждый раз новое вышел из положения, создавая/уничтожая объект TADOConnection при необходимости, но это же не дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 10:08 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
Это соединение держится в пуле коннектов. По-умолчанию, оно там висит 1 минуту. Чтобы соединение не попадало в пул, надо в строке соединения прописать OLE DB Services=-1; или OLE DB Services=-2; точно не помню, уточни в MSDN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 10:24 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
но почему без использования application role при программном закрытии соединения мнения дельфи и ЕМ совпадают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 10:42 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
Потому что имеется как раз документированая бага, связанная с пулом и ролей приложения. Суть её в следующем - при получении коннекшена из пула, все сбрасывается, кроме роли приложения. Поэтому, без использования роли приложения, для тебя весь процесс пуллинга незаметен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 11:46 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
О-о-о!!! Видимо бага дельфи, т.к. на VB все в порядке. Но в любом случае - знать такие тонкости - это круто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 11:56 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
2unreger: слушай, объясни поподробнее, плиз, какие компоненты ставил, как к базе коннектишься, настройки и пр., в общем, все, что делал, чтоб законнектиться через роль приложения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 12:35 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
У меня есть класс TCADORecordset -обертка над TADOStoredProc, есть клас TCADODataCenter в котором в TList указатели на TCADORecordset, т.е. я в любой момент могу пробежаться по рекордсетам и обновить/закрыть и т.д. Формы работают с единственным экземпляром этого класса. Все АДО-компоненты создаются программно. Только _клиентский_ курсор. Изменения только через _хранимые_ _процедуры_. Таблицы никогда не доступны. Параметры соединения получил, положив на форму ADOConnection, из построителя. Windows Authentication. У TCADODataCenter есть метод реконнект, который закрывает все рекордсеты, _уничтожает_ объект TADOConnection, тут же его создает и коннектится заново, обновляя необходимые рекордсеты. После предварительного коннекта с минимальными правами происходит (через TADOCommand) запуск прикладной роли (через TADOStoredProc в конечном итоге). Более подробно не могу - там модуль больше 600 строк. Зачем: Ролей две: юзер и админ. Любой пользователь всегда работает с минимальными правами, которые при необходимости расширяются (если они у него есть) (переключение роли) и после выполнения операций, снова происходит откат к минимальным (реконнект). Это права на доступ к объектам сервера(хранимым процедурам, в основном). Права на совершение операций над объектами предметной области поддерживаются программно, т.к. в большинстве случаев требуется доступ к таблицам на уровне строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 13:44 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
Благодарствую. Правда, не могу сказать, что сильно помогло... Я хочу понять, как самым простым способом подконнектиться к серваку через роль приложения. У меня там несколько таблиц и хранимая процедура, которые активно юзаются, дык и не знаю, как их правильно законнектить... На данный момент делаю так: у всех используемых рекордсетов явно указываю ConnectionString к базе (без ADOConnection) потом ADOCommand 'exec sp_setapprole ...' потом открываю рекордсеты (по необходимости запускаю ADOStoredProc...) Будет ли такой коннект считаться коннектом через роль приложения? Delphi5, MSSQL 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 14:24 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
Будет :) если интересует, переключились ли права на прикладную роль, создавай и проверяй Return-параметр для объекта в котором запускаешь sp_setapprole "у всех используемых рекордсетов явно указываю ConnectionString к базе (без ADOConnection" только зачем множество соединений с одного клиента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 14:57 |
|
||
|
не закрывается TADOConnection при использовании application role
|
|||
|---|---|---|---|
|
#18+
>>Будет :) Спасибо, ты меня успокоил! :) >>только зачем множество соединений с одного клиента? а что, в данном случае можно таки использовать ADOConnection? А когда же тогда выполнять setapprole, до открытия ADOConnection, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 15:28 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32074094&tid=2119578]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 186ms |

| 0 / 0 |
