Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ошибка при вызове sp_setapprole / 6 сообщений из 6, страница 1 из 1
09.01.2003, 16:22
    #32088352
ulysses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при вызове sp_setapprole
в общем сабж...

ADOCommand_goApp.CommandText:=Trim('exec sp_setapprole ''' + AppName + ''', {ENCRYPT N ''' + AppPassword + '''} ');
ADOCommand_goApp.Execute;

с кавычками все ок, на выполнении команды вылетает ошибка следующего содержания: EOleException 'Application roles can only be activated at the ad hoc level'
подключаюсь к базе под рбычным юзером без прав, выполняю переключение на роль приложения... в Query analyzer все работает.. а здесь...??
...
Рейтинг: 0 / 0
10.01.2003, 13:10
    #32088770
alr
alr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при вызове sp_setapprole
ADOCommand_goApp.CommandText:=Trim('exec sp_setapprole ''' + AppName + ''', {ENCRYPT N ''' + AppPassword + '''} ');
ADOCommand_goApp.Prepared := false;
ADOCommand_goApp.Execute;
...
Рейтинг: 0 / 0
10.01.2003, 14:09
    #32088809
ulysses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при вызове sp_setapprole
спасибо.. только вот неясно, чем Prepare помогает.. из документации по дольфи неясно мне..:(
я вот выкрутился пока так

ADOConnection.Execute(этот самый вызов процедуры)

кстати завелось... странно, такое впечатление, что ADOCommand пытался устанавливать новый коннект, хотя я ему явно в свойство Connection прописывал существующий...
а теперь такие вот грабли: первый раз все выполняется, потом делаю ADOConnection.Connected:= false, то бишь рубим его... в след раз спустя 10 сек по таймеру пытаюсь выполнить то же самое и получаю ошибку при вызове этой процедуры... неужели коннект на сервере не рубится??? неясно
...
Рейтинг: 0 / 0
10.01.2003, 15:53
    #32088936
ulysses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при вызове sp_setapprole
порылся в форуме, были схожие проблемы, в смысле дельфи считает коннект закрытым, а сервер нет... но решения не нашел пока
кстати, сообщение то следующее при выполнении активации роли приложения
[DBNETLIB][ConnectionReal(recv()).] network error.
...
Рейтинг: 0 / 0
10.01.2003, 16:10
    #32088947
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при вызове sp_setapprole
Здесь намешано аж 3 разные проблемы:

1) Проблема с ad-hoc и app-role

В некоторых ситуациях ADO оборачивает вызовы запросов в "обертки" типа sp_prepare <ваш запрос>, sp_executesql <ваш запрос>. A sp_setapprole не может быть вызвано изнутри любой другой процедуры, о чем и говорит типа "это вам не ad-hoc query".

2) спустя 10 секунд после закрытия коннекта и открытия заново не дает активировать роль приложения.

Это из-за пула коннектов. После закрытия соединения, оно на самом деле не закрывается, а остается висеть в спец. пуле 1 минуту вместе с активированой ролью. При попытке подключится заново, коннект не создается заново, а берется из пула вместе с ролью. Это бага от MS. MS об этом не слишком сожалеет, судя по тому что не пытаются исправить.

3) Создание дополнительных соединений.

ADO так работает. Если основной коннект чем-нибудь занят, например, выборкой недофетченного запроса или держанием серверного курсора, ADO запросто создает доп. временные соединения при необходимости выполнить еще один запрос. Проблема, в основном, проявляется при использовании временных таблиц.
...
Рейтинг: 0 / 0
10.01.2003, 16:21
    #32088954
ulysses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при вызове sp_setapprole
спасибо за пространое объяснение, полезно...
у меня процедура на сервере выдает небольшой набор результатов-параметров, так что до проблемы с занятостью коннекта я похоже не доберусь пока :) (но еще раз спасибо, предупрежден-вооружен), к тому же время 10 сек взял с потолка на период теста, в реале оно больше будет...

теперь бага - да досадно, что это находишь только в technet
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B229564

решение и правда в параметре коннстринга OLE DB Services=-2

всем спасибо
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ошибка при вызове sp_setapprole / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]