Поддержка Oracle Data Provider For .net (odp.net)
Здравствуйте!
Для соединения с БД Oracle можно использовать "Подключение к OLE DB" или "Подключение к Oracle".
Предпочтительнее второй вариант и он нормально работает.
В этом случае используется FastReport.Oracle.dll.
Но эта сборка использует провайдер для Оракла от Майкрософт (System.Data.OracleClient).
У самого Оракла есть провайдер ODP.NET, который идет в составе пакета Oracle Data Access Components (ODAC):
ODAC
Хотелось бы иметь возможность использовать именно этот провайдер.
Это возможно?
Спасибо.
Для соединения с БД Oracle можно использовать "Подключение к OLE DB" или "Подключение к Oracle".
Предпочтительнее второй вариант и он нормально работает.
В этом случае используется FastReport.Oracle.dll.
Но эта сборка использует провайдер для Оракла от Майкрософт (System.Data.OracleClient).
У самого Оракла есть провайдер ODP.NET, который идет в составе пакета Oracle Data Access Components (ODAC):
ODAC
Хотелось бы иметь возможность использовать именно этот провайдер.
Это возможно?
Спасибо.
Комментарии
Это возможно. Мне понадобится некоторое время, чтобы написать коннектор для этого провайдера. Скорее всего, к концу недели будет готово.
http://www.fast-report.com/pbc_download/FRNetConnections.zip
Требуется последняя версия ODP.Net, та, которая .Net 2.0.
Также скачайте свежую версию FR.Net.
Здравствуйте!
Большое спасибо! Все прекрасно работает.
Я проверил с ODP 11.1.07.20 (самый свежий).
Правда, немного неудобно, что библиотеки называются одинаково.
Если не знаешь, не разберешь какая используется. И подключить обе одновременно не получится.
Но это не критично.
Сделал так сознательно. Библиотеки, по сути, дублируют друг друга, и подключать их одновременно не имеет смысла.
А если еще при этом программа запускается с сетевой папки, то возникнет проблема.
В этом случае использовать ODP будет сложно.
При создании параметра по умолчанию DataType имеет значение 0, что не совсем корректно.
Желательно установить Varchar2 (это OracleDbType int 126).
У меня есть небольшое предложение по OracleConnectionEditor для ODP.
Для имени сервера вместо TextBox можно использовать ComboBox, в котором будет список доступных серверов.
Это удобно и используется практически везде.
Пример кода:
OracleDataSourceEnumerator oraEnum = new OracleDataSourceEnumerator();
Спасибо за предложение, обязательно применим.
Обнаружил проблему в коннекторе FastReport.OracleODP.
Описание:
- в мастере создаю любой запрос с параметром типа "дата"
например: select * from dual where sysdate = :a
- создаю параметр с именем "a" и типом "Date"
- нажимаю "Вперед >" - ошибка: "Input string was not in a correct format."
Нормально работает только с Varchar2 (может я и не все варианты проверил).
Ошибка именно при внутренней верификации, а не в коннекторе.
Шаманством добиться правильного результата мне удалось:
создаю параметр с типом Varchar2, а потом меняю тип параметра на Date отдельно не через мастер источника данных, а редактирование свойства Parameters. Так проверка не выполняется.
Было ли это сразу или появилось недавно я не знаю.
Да, на стандартном коннекторе работает нормально.
Для параметра обязательно надо указывать св-во DefaultValue.
Спасибо.
Работает.
Только не ясно, почему по разному работают два коннектора...
Кроме того, сообщение об ошибке совсем не информативное.
Да и не логично, как по мне, такое требование.