Запуск хранимой процедуры в скрипте отчета
Здравствуйте!
подскажите пожалуйста, как решить следующую проблему:
используется FastReport .NET (только Designer), подключенный через ОДБС к Oracle.
перед получением данных с сервера необходимо выполнить ХП (для задания значений пакетных переменных).
т.е. хотелось бы в скрипте отчета создать что-то похожее на Query, задать ему текущий Connection отчета, текст запроса
и выполнить что-то типа Query.ExecuteNonQuery().
но у свойства Report.Dictionary.Connections[0] нет метода CreateCommand(),
а среди неймспейсов (искал в System.Data), которые используются отчетом не удалось найти такой клас Query,
Connection которого был бы такого же типа что и Report.Dictionary.Connections[0].
использовать метод Report.Dictionary.Connections[0].GetConnection() нельзя, поскольку, как мне кажется, он создает еще одно,
а ХП нужно выполнить в текущем подключении.
было найдено не очень красивое решение:
процедура переписалась в виде функции (с фиктивным результатом), далее:
Report.Dictionary.Connections[0].FillDataTable(<таблица>, "select <функция> from dual", <параметры>);
тут <таблица> и <параметры> - фиктивные переменные, нужны только для того чтоб работал метод.
очевидно, данный метод использован не по назначению.
подскажите, пожалуйста, более адекватное решение данной задачи.
Спасибо
подскажите пожалуйста, как решить следующую проблему:
используется FastReport .NET (только Designer), подключенный через ОДБС к Oracle.
перед получением данных с сервера необходимо выполнить ХП (для задания значений пакетных переменных).
т.е. хотелось бы в скрипте отчета создать что-то похожее на Query, задать ему текущий Connection отчета, текст запроса
и выполнить что-то типа Query.ExecuteNonQuery().
но у свойства Report.Dictionary.Connections[0] нет метода CreateCommand(),
а среди неймспейсов (искал в System.Data), которые используются отчетом не удалось найти такой клас Query,
Connection которого был бы такого же типа что и Report.Dictionary.Connections[0].
использовать метод Report.Dictionary.Connections[0].GetConnection() нельзя, поскольку, как мне кажется, он создает еще одно,
а ХП нужно выполнить в текущем подключении.
было найдено не очень красивое решение:
процедура переписалась в виде функции (с фиктивным результатом), далее:
Report.Dictionary.Connections[0].FillDataTable(<таблица>, "select <функция> from dual", <параметры>);
тут <таблица> и <параметры> - фиктивные переменные, нужны только для того чтоб работал метод.
очевидно, данный метод использован не по назначению.
подскажите, пожалуйста, более адекватное решение данной задачи.
Спасибо