Страница 1 из 1

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

Добавлено: 05 мар 2012, 08:51
fantomus
Здравствуйте.

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

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

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

Спасибо.

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

Добавлено: 05 мар 2012, 10:14
Aleksey
Здравствуйте,

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

Спасибо.

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

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

И второе.
Насколько я понял, работа с Output-параметрами для хранимых процедур не поддерживается?

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

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

Спасибо.