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

Re: Stimulsoft.Report.OracleODP

Добавлено: 07 июл 2015, 10:14
Aleksey
Здравствуйте, Леонид

Проблему с параметрами исправили, фикс будет доступен в следующем билде в пятницу.
Напиши, пожалуйста, на support@stimulsoft.com, если вам нужно раньше.

Спасибо.

Re: Stimulsoft.Report.OracleODP

Добавлено: 07 июл 2015, 11:13
Леонид
Доброе утро!

Очень рады слышать это! Такой спешки нет, подождём до пятницы официальный билд.
Спасибо!

Re: Stimulsoft.Report.OracleODP

Добавлено: 07 июл 2015, 12:15
Aleksey
Здравствуйте, Леонид

Всегда рады помочь!

Спасибо.

Re: Stimulsoft.Report.OracleODP

Добавлено: 15 июл 2015, 17:22
Леонид
Добрый день!

Итак, версия продукта 2015.1.12.0. Всё теперь работает как надо. Благодарим вас за исправления! :)

Для тех людей, которые будут переходить с более ранних версий, работающих с Oracle. К примеру, мы переходили с версии 2012.1.1300.0, которая использовала адаптер Stimulsoft.Report.OracleODP.dll.
Напомню, что, как сказал Алексей:
В последних версиях, вам достаточно в папку bin или в references добавить только саму оракловскую dll-ку Oracle.DataAccess.
Для standalone designer.exe просто скопировать данную длл-ку в папку с дизайнером.
Поэтому, для всех отчётов, содержащих ссылку на старый connection (в нашем случае Oracle) и старый DataSource вам придётся пересоздавать их, либо исправить существующие в самом .mrt (xml)-файле. Это необходимо, что избавиться от Stimulsoft.Report.OracleODP.dll и начать использовать нативную оракловую Oracle.DataAccess.dll.

Процитирую свой же текст из недавнего поста:
В принципе, раз с версии 2015.1.0.0 уже нет необходимости в Stimulsoft.Report.OracleODP.dll, то мы решили от неё избавится. К слову у нас 325 отчётов, из них 265 в которых используется статически определённый Connection и DataSource.

Соответственно, мы написали процедуру, которая загружает последовательно каждый blob (отчёт mrt) из базы, меняет в нём по адресу XPath "StiSerializer/Dictionary/Databases", далее для одного коннекта (он всегда там один) значение атрибута type с "Stimulsoft.Report.Dictionary.StiOracleODPDatabase" на "Stimulsoft.Report.Dictionary.StiOracleDatabase".

Аналогично в пути "StiSerializer/Dictionary/DataSources" для одного DataSource (он так же один для этого коннекта) значение атрибута type с "Stimulsoft.Report.Dictionary.StiOracleODPSource" на "Stimulsoft.Report.Dictionary.StiOracleSource".

Таким образом меняем все blob'ы (отчёты в базе), компилируем проект под 2015.1.10.0 и всё работает, теперь без использования Stimulsoft.Report.OracleODP.dll, что не может не радовать.
На практике в произвольном файле отчёта это будет выглядеть так:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<StiSerializer version="1.02" type="Net" application="StiReport">
<Dictionary Ref="1" type="Dictionary" isKey="true">
<BusinessObjects isList="true" count="0" />
<Databases isList="true" count="1">
<ConOra Ref="2" type="Stimulsoft.Report.Dictionary.StiOracleODPDatabase" isKey="true">
<Alias>ConOra</Alias>
<ConnectionStringEncrypted>4GL1S0hVQllqXf29YdgiY9tqU6FGA/OtawilvXco6z+LVslITUoxhUZJodxqdCIf1lrZK8tL+6nnQeXEekThs8Jw9yvvSnPt4RU9hGOI</ConnectionStringEncrypted>
<Name>ConOra</Name>
</ConOra>
</Databases>
<DataSources isList="true" count="1">
<rep_bill Ref="3" type="Stimulsoft.Report.Dictionary.StiOracleODPSource" isKey="true">
<Alias>rep_bill</Alias>
<Columns isList="true" count="37">
<value>DOC_CODE,System.Decimal</value>
Меняем (только то, что выделено жирным):
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<StiSerializer version="1.02" type="Net" application="StiReport">
<Dictionary Ref="1" type="Dictionary" isKey="true">
<BusinessObjects isList="true" count="0" />
<Databases isList="true" count="1">
<ConOra Ref="2" type="Stimulsoft.Report.Dictionary.StiOracleDatabase" isKey="true">
<Alias>ConOra</Alias>
<ConnectionStringEncrypted>4GL1S0hVQllqXf29YdgiY9tqU6FGA/OtawilvXco6z+LVslITUoxhUZJodxqdCIf1lrZK8tL+6nnQeXEekThs8Jw9yvvSnPt4RU9hGOI</ConnectionStringEncrypted>
<Name>ConOra</Name>
</ConOra>
</Databases>
<DataSources isList="true" count="1">
<rep_bill Ref="3" type="Stimulsoft.Report.Dictionary.StiOracleSource" isKey="true">
<Alias>rep_bill</Alias>
<Columns isList="true" count="37">
<value>DOC_CODE,System.Decimal</value>
Так как у нас все отчёты хранятся в отдельной табличке в базе Oracle, как я и говорил, мы написали небольшую софтину, которая пробегала по всем blob'ам, проверяя по соответствующему XPath наличие StiOracleODPDatabase и StiOracleODPSource, и заменяли их на StiOracleDatabase и StiOracleSource, соответственно.

Вы можете спросить, а зачем такие сложности? Почему нельзя работать со старой dll'кой? Вероятно, потому что это уже deprecated by Stimul, поэтому, очевидно, что когда-нибудь от неё придётся отказаться, и мы решили сделать это сразу. :idea:

Re: Stimulsoft.Report.OracleODP

Добавлено: 17 июл 2015, 15:00
Aleksey
Здравствуйте, Леонид

Дайте знать, если возникнут еще вопросы.