Выполнение sql-скрипта после соединения с БД (Oracle)

Обсуждение Stimulsoft Reports.NET
Ответить
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Выполнение sql-скрипта после соединения с БД (Oracle)

Сообщение fantomus »

Здравствуйте.

Подскажите, существует ли возможность выполнения sql-скрипта после соединения с БД (Oracle)?

Суть вопроса в том, что мне нужно перед генерацией отчета вызвать некоторый скрипт (обычно это хранимая процедура) в БД Oracle.
Это требуется в двух случаях - для параметризации сессии пользователя БД в web-проектах, и для предварительного вычисления или генерации некоторых данных для отчета.
Без первого обойтись совсем нельзя, а второй вариант иногда полезен...

Я использую Oracle Data Provider for .NET адаптер, VS 2010, SR 2011.3.

Спасибо.
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Выполнение sql-скрипта после соединения с БД (Oracle)

Сообщение Aleksey »

Здравствуйте,

Как вариант, создать источник данных с данной процедурой, установить свойство ConnectOnStart в false. И, при необходимости, в событии BeforePrint выполнять DataSourceName.Connect().

Спасибо.
fantomus
Сообщения: 215
Зарегистрирован: 22 апр 2009, 06:41
Откуда: Kyiv, Ukraine

Выполнение sql-скрипта после соединения с БД (Oracle)

Сообщение fantomus »

Да, этот вариант решает задачу, хоть и не очень элегантно.
А можно ли добраться напрямую к OracleConnection в событии Connected самого соединения?

И второе.
Насколько я понял, работа с Output-параметрами для хранимых процедур не поддерживается?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Выполнение sql-скрипта после соединения с БД (Oracle)

Сообщение Aleksey »

Здравствуйте,
fantomus писал(а):Да, этот вариант решает задачу, хоть и не очень элегантно.
А можно ли добраться напрямую к OracleConnection в событии Connected самого соединения?
По идее, вы можете в событии ConnectedEvent создать новое соединение и использовать его
OracleConnection conn = new OracleConnection(((Stimulsoft.Report.Dictionary.StiSqlDatabase)sender).ConnectionString);
conn.Open();
....
fantomus писал(а):И второе.
Насколько я понял, работа с Output-параметрами для хранимых процедур не поддерживается?
В качестве Output-параметрами можно использовать только курсоры (REF CURSOR)

Спасибо.
Ответить