Страница 1 из 2
Stimulsoft Reports AND Oracle
Добавлено: 25 мар 2011, 04:35
neodroid
Сразу хочу перейти к постановке задачи.
Имеется крупная организация, которая на данный момент использует Crystal Reports и Business Objects для системы отчетности.
В связи с рядом объективный и субъективных причин, возникла необходимость перехода с CR на одну из альтернативных систем отчетности.
На данный момент рассматривается кандидатура Stimulsoft Reports, поэтому хотелось бы задать несколько вопросов, которые касаются в первую очередь продукта Designer
1) Существуют ли коннекторы к БД Oracle через Oracle Client?
2) Есть ли возможность выгрузки отчетов из хранимых процедур PL\SQL?
3) Возможно ли составление отчетов с входящими параметрами?
Stimulsoft Reports AND Oracle
Добавлено: 25 мар 2011, 07:38
Aleksey
Здравствуйте,
neodroid писал(а):1) Существуют ли коннекторы к БД Oracle через Oracle Client?
Вы можете использовать как ODBC, OleDb адаптеры, так и Oracle адаптеры, которые доступны для скачивания на нашем сайте в разделе downloads.
Вы можете их протестировать.
neodroid писал(а):2) Есть ли возможность выгрузки отчетов из хранимых процедур PL\SQL?
Пожалуйста, уточните вашу задачу.
Если вы подразумеваете получение данных с помощью хранимых процедур, то - да, это возможно.
neodroid писал(а):3) Возможно ли составление отчетов с входящими параметрами?
Пожалуйста, уточните вашу задачу. Для каких целей будут использоваться эти параметры.
Спасибо.
Stimulsoft Reports AND Oracle
Добавлено: 28 мар 2011, 01:49
neodroid
Aleksey писал(а):
Пожалуйста, уточните вашу задачу.
Если вы подразумеваете получение данных с помощью хранимых процедур, то - да, это возможно.
Имеется хранимая процедура, у которой один из OUT-параметров - REF CURSOR.
При разработке отчета в CR, определение OUT-параметра происходит автоматически и данные для отчета берутся из него.
Собственно большинство наших отчетов построены именно таким образом. :shame:
Stimulsoft Reports AND Oracle
Добавлено: 28 мар 2011, 05:11
Aleksey
Здравствуйте,
На данный момент, данные типа REF CURSOR не поддерживаются в нашем продукте.
Но если вы можете предоставить подробное описание как они работают в ADO.NET и в Oracle, мы готовы реализовать данный тип данных.
Спасибо.
Stimulsoft Reports AND Oracle
Добавлено: 28 мар 2011, 08:49
neodroid
Здравствуйте!
Дела обстоят следующим образом:
1) SQL запрос для того, что бы получить список хранимых процедур
Код: Выделить всё
SELECT
UO.OBJECT_NAME --имя процедуры
FROM USER_OBJECTS uo
WHERE UO.OBJECT_TYPE = 'PROCEDURE'
2) Получение параметров хранимой процедуры
Код: Выделить всё
SELECT
uo.argument_name , --Имя параметра
uo.data_type, -- Тип параметра
uo.IN_OUT -- IN/OUT исходящий или входящий
FROM ALL_ARGUMENTS uo
WHERE OBJECT_NAME = '%OBJECT_NAME%' -- Где %OBJECT_NAME% - имя процедуры
AND OWNER = '%USER_NAME%' -- Где %USER_NAME% - имя владельца
ORDER BY UO.SEQUENCE -- ну и в необходимом порядке
3) Вызов хранимой процедуры с входящими и исходящими параметрами
Код: Выделить всё
//Подключаем Оракл-клиент
using System.Data.OracleClient;
//Создаем Оракл-соединение
public OracleConnection myConnection = new OracleConnection("Data Source=TNS_NAME_HERE;Persist Security Info=True;User ID=USER_NAME;Password=******;Unicode=True;"); //строка соединения
public DataTable getAnyData(int numberParam)
{
OracleCommand command = new OracleCommand("USER_NAME.getAnyData", myConnection); //имя хранимой процедуры
command.CommandType = CommandType.StoredProcedure;
OracleParameter oraNumberParam = new OracleParameter("inNumberParam", OracleType.Number);
oraNumberParam.Value = numberParam
command.Parameters.Add(oraNumberParam); //добавляем первый параметр
OracleParameter oraResult = new OracleParameter("outCursorParam", OracleType.Cursor);
oraResult.Direction = ParameterDirection.Output; // напоминаем, что это у нас исходящий параметр
command.Parameters.Add(oraResult);
OracleDataReader dr = null;
DataTable dt = new DataTable();
try
{
myConnection.Open(); //поехали
dr = command.ExecuteReader(CommandBehavior.CloseConnection); //получаем DataReader
dt.Load(dr); //выгружаем в удобный для нас DataTable (выбор вкуса)
myConnection.Close(); //Закрываем соединение
}
catch
{
return null; //Если возникли проблемы
}
return dt;
}
Вот как-то так
Stimulsoft Reports AND Oracle
Добавлено: 28 мар 2011, 09:13
Aleksey
Здравствуйте,
Спасибо за предоставленную информацию.
Добавим поддержку данного типа после релиза.
Спасибо.
Stimulsoft Reports AND Oracle
Добавлено: 28 мар 2011, 12:41
Aleksey
Здравствуйте,
Работа с процедурами в нашем продукте поддерживается. Некорректно работают процедуры с типом возвращаемых данных REF CURSOR.
Не могли бы вы привести пример такой процедуры в Oracle.
Спасибо.
Stimulsoft Reports AND Oracle
Добавлено: 25 июл 2011, 09:42
neodroid
Здравствуйте!
Вышла ли новая версия с поддержкой получения данных из Оракового курсора?
Stimulsoft Reports AND Oracle
Добавлено: 25 июл 2011, 11:10
Aleksey
Здравствуйте,
К сожалению, но пока что данный тип не поддерживается.
Постараемся заняться данным вопросом в ближайшее время.
Спасибо.
Stimulsoft Reports AND Oracle
Добавлено: 23 авг 2011, 10:25
Aleksey
Здравствуйте,
Добавили поддержку типа RefCursor для процедур.
Решение будет доступно в предрелизном билде на этой неделе. Так же необходимо будет скачать обновленный Oracle.ODP дата адаптер с нашего сайта.
Сообщите, если возникнут какие-либо вопросы.
Спасибо.