Вопрос по Application Role

отредактировано May 2009 Раздел: FastReport .NET
Выбираю репортер для приложения, попробовал FastReport.NET и еще один репортер, но проблема есть в обоих. Winforms приложение, база MSSQL 2008, специфика приложения такова, что после подсоединения к базе с помощью SqlConnection активируется роль приложения путем вызова exec sp_setapprole 'FrontOfficeApp', 'verylongpassword' - иначе большинство объектов БД недоступно даже на чтение (разграничение прав доступа). Коррекцией connection string данное дело не обходится. Отчеты будут делаться на девелопмент сервере и копироваться на продакшн.

Как активировать application role после подсоединения репортера к базе?
Поискал события (на которые можно подписаться и выполнить нужную команду) типа AfterConnect или похожих - ничего не нашел. Как мне вызвать хранимую процедуру после соединения с БД?

Опционально (это тоже будет решением проблемы) - как передать свой SqlConnection, уже открытый и переключенный в нужный контекст репортеру?

Комментарии

  • отредактировано 07:22
    Здравствуйте,

    В данный момент никак. Могу добавить глобальное событие, которое будет вызываться после создания Connection - в нем можно будет сделать вызов ХП.
  • отредактировано 07:22
    Собственно, уже добавил - EnvironmentSettings.ReportSettings.AfterDatabaseLogin, либо Config.ReportSettings.AfterDatabaseLogin. В e.Connection - открытый объект DbConnection.
    Изменения будут доступны в очередном билде (соберется сегодня ночью).

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.