Проблема с параметрами запросов
Проблема с параметрами запросов
По ошибке с параметрами.
Тестирую на Windows XP SP3 Eng. NET Framework 3.5 SP1.
Все делал на своей рабочей машине + еще две машины + еще две виртуальные.
ОС везде одинаковая.
ODP 11.1.06.21 и 11.1.07.20
Stimulsoft Reports.Net 2009.2.500 и 2009.3.511
У себя на машине чистил ГАК, переустанавливал версию Stimulsoft Reports.Net.
На все машинки кроме моей копировал папку \Stimulsoft Reports.Net 2009.2\Bin и запускал Browser.exe или Designer.exe.
Результат одинаковый. Ошибка та же.
PS. Не понял почему, но на чисто установленной WinXP SP3 + NET Framework 3.5 SP1 на виртуалке отсутствует библиотека "adodb.dll". Без нее не поднимается окно параметров OleDb соединения. Пришлось копировать файл отдельно.
Тестирую на Windows XP SP3 Eng. NET Framework 3.5 SP1.
Все делал на своей рабочей машине + еще две машины + еще две виртуальные.
ОС везде одинаковая.
ODP 11.1.06.21 и 11.1.07.20
Stimulsoft Reports.Net 2009.2.500 и 2009.3.511
У себя на машине чистил ГАК, переустанавливал версию Stimulsoft Reports.Net.
На все машинки кроме моей копировал папку \Stimulsoft Reports.Net 2009.2\Bin и запускал Browser.exe или Designer.exe.
Результат одинаковый. Ошибка та же.
PS. Не понял почему, но на чисто установленной WinXP SP3 + NET Framework 3.5 SP1 на виртуалке отсутствует библиотека "adodb.dll". Без нее не поднимается окно параметров OleDb соединения. Пришлось копировать файл отдельно.
Проблема с параметрами запросов
Обратил внимание, что работает одинаково как при наличии файла Stimulsoft.Report.OracleClient.dll так и без него.
Сейчас я экспериментирую исключительно с вашими программами, которые идут в комплекте.
В инструкции по установке Oracle Database Pack написано следующее:
Как понять, используется ли Oracle Database Pack?
Сейчас я экспериментирую исключительно с вашими программами, которые идут в комплекте.
В инструкции по установке Oracle Database Pack написано следующее:
Я так и делаю. Файл лежит вместе с программами в одной папке.To attach the file to the Designer.exe just put the file assembly into the same
directory where the Designer.exe is located. Besides you should provide access
to the assembly of the provider of the database.
Как понять, используется ли Oracle Database Pack?
Проблема с параметрами запросов
В качестве клиентской части я использую
Oracle Data Access Components (ODAC)
он же ODP.NET (Oracle Data Provider for .Net)
Я использовал версии 11.1.06.21 и 11.1.07.20 в составе которых идет Oracle Instant Client 11.1.0.6.0 и Oracle Instant Client 11.1.0.7.0 соответственно.
Может проблема именно с версией клиента?
Какой Вы используете?
Я попробую поставить у себя и проверить.
Какой провайдер Вы используете при создании отчета?
Oracle Provider for OLEDB или Microsoft OLEDB Provider for Oracle?
Oracle Data Access Components (ODAC)
он же ODP.NET (Oracle Data Provider for .Net)
Я использовал версии 11.1.06.21 и 11.1.07.20 в составе которых идет Oracle Instant Client 11.1.0.6.0 и Oracle Instant Client 11.1.0.7.0 соответственно.
Может проблема именно с версией клиента?
Какой Вы используете?
Я попробую поставить у себя и проверить.
Какой провайдер Вы используете при создании отчета?
Oracle Provider for OLEDB или Microsoft OLEDB Provider for Oracle?
Проблема с параметрами запросов
Здравствуйте,
Спасибо за такой подробный анализ, мы обязательно докопаемся до сути проблемы и найдем решение.
Работает и Oracle Provider for OLEDB и Microsoft OLEDB Provider for Oracle.
В отличии используемых провайдеров y нас с Вами наверное и кроется проблема.
Спасибо.
Спасибо за такой подробный анализ, мы обязательно докопаемся до сути проблемы и найдем решение.
Мы не использовали эти версии клиента, начинаем их тестировать.В качестве клиентской части я использую
Oracle Data Access Components (ODAC)
он же ODP.NET (Oracle Data Provider for .Net)
Я использовал версии 11.1.06.21 и 11.1.07.20 в составе которых идет Oracle Instant Client 11.1.0.6.0 и Oracle Instant Client 11.1.0.7.0 соответственно.
Мы используем стандартные провайдеры.Может проблема именно с версией клиента?
Какой Вы используете?
Я попробую поставить у себя и проверить.
Какой провайдер Вы используете при создании отчета?
Oracle Provider for OLEDB или Microsoft OLEDB Provider for Oracle?
Работает и Oracle Provider for OLEDB и Microsoft OLEDB Provider for Oracle.
В отличии используемых провайдеров y нас с Вами наверное и кроется проблема.
Спасибо.
Проблема с параметрами запросов
Похоже, что проблема действительно в версиях Oracle Client или ODP.NET.
Скажите, какие версии Вы используете?
Если у Вас все работает, я хочу проверить у себя.
И второй вопрос.
Работают ли именованные параметры в запросах через соединение типа "Microsoft OLEDB Provider for Oracle"?
Если да, то какой синтаксис Вы используете?
У меня не получается.
Пробовал следующие варианты:
запрос:
select * from dual where :a = 1
параметр: "a", ":a", "@a" (без кавычек, конечно)
Всегда ошибка: ORA-01008: not all variables bound
Скажите, какие версии Вы используете?
Если у Вас все работает, я хочу проверить у себя.
И второй вопрос.
Работают ли именованные параметры в запросах через соединение типа "Microsoft OLEDB Provider for Oracle"?
Если да, то какой синтаксис Вы используете?
У меня не получается.
Пробовал следующие варианты:
запрос:
select * from dual where :a = 1
параметр: "a", ":a", "@a" (без кавычек, конечно)
Всегда ошибка: ORA-01008: not all variables bound
Проблема с параметрами запросов
Мы используем стандартные провайдеры.
Oracle Provider for OLEDB (видимо он ставится с Oracle 10g)
и
Microsoft OLEDB Provider for Oracle
В случае с Microsoft OLEDB Provider for Oracle работали только неименованные параметры:
?
Вот ссылка, где пример их использования:
http://www.stimulsoft.com/livedemos/Rep ... ers_2.html
и
http://forum.stimulsoft.com/Default.aspx?g=posts&t=504
Спасибо.
Oracle Provider for OLEDB (видимо он ставится с Oracle 10g)
и
Microsoft OLEDB Provider for Oracle
В случае с Microsoft OLEDB Provider for Oracle работали только неименованные параметры:
?
Вот ссылка, где пример их использования:
http://www.stimulsoft.com/livedemos/Rep ... ers_2.html
и
http://forum.stimulsoft.com/Default.aspx?g=posts&t=504
Спасибо.
Проблема с параметрами запросов
Уточните, пожалуйста, версию.
Если смотреть здесь:
http://www.oracle.com/technology/softwa ... index.html
то там есть такие варианты для 10g:
1) Oracle 10g ODAC 10.1.0.4.0
-Oracle Data Provider for .NET 10.1.0.4.0
2) Oracle Developer Tools for Visual Studio .NET with Oracle 10g Release 2 ODAC 10.2.0.2.21
-Oracle Data Provider for .NET 1.x 10.2.0.2.20
-Oracle Data Provider for .NET 2.0 10.2.0.2.20
Похоже, вариант 1 только под Net 1.x.
Во втором варианте есть две версии. Для .NET 1.x и .NET 2.0.
И скажите версию библиотеки Oracle.DataAccess.dll в GAC.
Если смотреть здесь:
http://www.oracle.com/technology/softwa ... index.html
то там есть такие варианты для 10g:
1) Oracle 10g ODAC 10.1.0.4.0
-Oracle Data Provider for .NET 10.1.0.4.0
2) Oracle Developer Tools for Visual Studio .NET with Oracle 10g Release 2 ODAC 10.2.0.2.21
-Oracle Data Provider for .NET 1.x 10.2.0.2.20
-Oracle Data Provider for .NET 2.0 10.2.0.2.20
Похоже, вариант 1 только под Net 1.x.
Во втором варианте есть две версии. Для .NET 1.x и .NET 2.0.
И скажите версию библиотеки Oracle.DataAccess.dll в GAC.
Проблема с параметрами запросов
Здравствуйте,
Версия библиотеки в GAC 10.2.0.100.
Provider стандартный который шел с Oracle 10g похоже предыдущая версия.
Спасибо.
Версия библиотеки в GAC 10.2.0.100.
Provider стандартный который шел с Oracle 10g похоже предыдущая версия.
Спасибо.
Проблема с параметрами запросов
Проверил
- Oracle 10g Release 2 ODAC (Oracle Data Provider for .NET 2.0 10.2.0.2.20)
- Oracle 10g ODAC (Oracle Data Provider for .NET 10.1.0.4.0)
При использовании соединения Oracle Provider for OLEDB вообще запросы с параметрами не работают.
Даже с одним. Ошибка та же.
- Oracle 10g Release 2 ODAC (Oracle Data Provider for .NET 2.0 10.2.0.2.20)
- Oracle 10g ODAC (Oracle Data Provider for .NET 10.1.0.4.0)
При использовании соединения Oracle Provider for OLEDB вообще запросы с параметрами не работают.
Даже с одним. Ошибка та же.
Проблема с параметрами запросов
Все. Разобрался.
1. Ваши программы Browser и Designer не умеют использовать Stimulsoft.Report.OracleClient.dll из Oracle Database Pack, хотя в инструкции написано следующее:
Или уберите этот абзац, или исправьте программы (желательно обе).
2. Если в свой проект добавить
StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiOracleAdapterService());
StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiOracleDatabase());
то в программе при открытии дизайнера есть новый тип соединения "Oracle соединение" (как и должно быть!).
Но, при создании такого соединения в окне "Новое Oracle соединение" нет кнопки "Построить..." и строку соединения приходится заполнять вручную.
Например так:
User ID=user1;Password=1234;Data Source=srv1
И все правильно работает с параметрами!
Подскажите почему нет кнопки, а то вводить строку вручную не удобно.
3. Я скомпилировал Stimulsoft.Report.OracleClient.dll под ODP.NET.
Нужно только заменить using System.Data.OracleClient на using Oracle.DataAccess.Client и OracleType на OracleDbType.
Это на первый взгляд. Может есть другие нюансы, но я сильно не тестил. Простые запросы с параметрами работают нормально.
Вообще то я бы создал отдельный коннектор для ODP.NET с новым именем.
Типа Stimulsoft.Report.OracleClientODP.dll.
И типы с новыми именами: StiOracleODPAdapterService, StiOracleODPDatabase.
В этом случае можно было бы сознательно подключать оба провайдера (от MS и от Oracle).
Но тут Вам решать.
Спасибо!
1. Ваши программы Browser и Designer не умеют использовать Stimulsoft.Report.OracleClient.dll из Oracle Database Pack, хотя в инструкции написано следующее:
Это меня и сбило с пути истинного .To attach the file to the Designer.exe just put the file assembly into the same
directory where the Designer.exe is located. Besides you should provide access
to the assembly of the provider of the database.
Или уберите этот абзац, или исправьте программы (желательно обе).
2. Если в свой проект добавить
StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiOracleAdapterService());
StiConfig.Services.Add(new Stimulsoft.Report.Dictionary.StiOracleDatabase());
то в программе при открытии дизайнера есть новый тип соединения "Oracle соединение" (как и должно быть!).
Но, при создании такого соединения в окне "Новое Oracle соединение" нет кнопки "Построить..." и строку соединения приходится заполнять вручную.
Например так:
User ID=user1;Password=1234;Data Source=srv1
И все правильно работает с параметрами!
Подскажите почему нет кнопки, а то вводить строку вручную не удобно.
3. Я скомпилировал Stimulsoft.Report.OracleClient.dll под ODP.NET.
Нужно только заменить using System.Data.OracleClient на using Oracle.DataAccess.Client и OracleType на OracleDbType.
Это на первый взгляд. Может есть другие нюансы, но я сильно не тестил. Простые запросы с параметрами работают нормально.
Вообще то я бы создал отдельный коннектор для ODP.NET с новым именем.
Типа Stimulsoft.Report.OracleClientODP.dll.
И типы с новыми именами: StiOracleODPAdapterService, StiOracleODPDatabase.
В этом случае можно было бы сознательно подключать оба провайдера (от MS и от Oracle).
Но тут Вам решать.
Спасибо!