Поддержка Oracle Data Provider For .net (odp.net)

отредактировано 23:36 Раздел: FastReport .NET
Здравствуйте!

Для соединения с БД Oracle можно использовать "Подключение к OLE DB" или "Подключение к Oracle".
Предпочтительнее второй вариант и он нормально работает.
В этом случае используется FastReport.Oracle.dll.
Но эта сборка использует провайдер для Оракла от Майкрософт (System.Data.OracleClient).
У самого Оракла есть провайдер ODP.NET, который идет в составе пакета Oracle Data Access Components (ODAC):
ODAC

Хотелось бы иметь возможность использовать именно этот провайдер.
Это возможно?

Спасибо.

Комментарии

  • отредактировано 23:36
    Здравствуйте,

    Это возможно. Мне понадобится некоторое время, чтобы написать коннектор для этого провайдера. Скорее всего, к концу недели будет готово.
  • отредактировано 23:36
    Сделал, можете пробовать:
    http://www.fast-report.com/pbc_download/FRNetConnections.zip
    Требуется последняя версия ODP.Net, та, которая .Net 2.0.
    Также скачайте свежую версию FR.Net.
  • отредактировано 23:36
    AlexTZ написал: »
    Сделал, можете пробовать:
    http://www.fast-report.com/pbc_download/FRNetConnections.zip
    Требуется последняя версия ODP.Net, та, которая .Net 2.0.
    Также скачайте свежую версию FR.Net.

    Здравствуйте!

    Большое спасибо! Все прекрасно работает.
    Я проверил с ODP 11.1.07.20 (самый свежий).
    Правда, немного неудобно, что библиотеки называются одинаково.
    Если не знаешь, не разберешь какая используется. И подключить обе одновременно не получится.
    Но это не критично.
  • отредактировано 23:36
    Здравствуйте,

    Сделал так сознательно. Библиотеки, по сути, дублируют друг друга, и подключать их одновременно не имеет смысла.
  • отредактировано 23:36
    С этим я согласен, но все же бывают ситуации, когда на на некоторых клиентских местах установлен ODP, а не некоторых нет.
    А если еще при этом программа запускается с сетевой папки, то возникнет проблема.
    В этом случае использовать ODP будет сложно.
  • отредактировано 23:36
    Маленькое уточнение.
    При создании параметра по умолчанию DataType имеет значение 0, что не совсем корректно.
    Желательно установить Varchar2 (это OracleDbType int 126).
  • отредактировано 23:36
    Увы, тип параметра по умолчанию установить не могу. В любом случае, его надо обязательно выбирать вручную.
  • отредактировано 23:36
    Может тогда пустое поле сделать, если это возможно.
  • отредактировано 23:36
    Ок, сделаю в следующем билде значение по умолчанию.
  • отредактировано November 2009
    Здравствуйте.

    У меня есть небольшое предложение по OracleConnectionEditor для ODP.
    Для имени сервера вместо TextBox можно использовать ComboBox, в котором будет список доступных серверов.
    Это удобно и используется практически везде.

    Пример кода:
    OracleDataSourceEnumerator oraEnum = new OracleDataSourceEnumerator();
    try
    {
      DataTable dt = oraEnum.GetDataSources();
      foreach (DataRow row in dt.Rows)
        cbServer.Properties.Items.Add(row[0]);
      cbServer.AutoCompleteMode = AutoCompleteMode.Append;
      cbServer.AutoCompleteSource = AutoCompleteSource.ListItems;
    }
    catch (Exception)
    {
    }
    
  • отредактировано 23:36
    Здравствуйте,

    Спасибо за предложение, обязательно применим.
  • отредактировано April 2010
    Здравствуйте!

    Обнаружил проблему в коннекторе FastReport.OracleODP.
    Описание:
    - в мастере создаю любой запрос с параметром типа "дата"
    например: select * from dual where sysdate = :a
    - создаю параметр с именем "a" и типом "Date"
    - нажимаю "Вперед >" - ошибка: "Input string was not in a correct format."

    Нормально работает только с Varchar2 (может я и не все варианты проверил).
    Ошибка именно при внутренней верификации, а не в коннекторе.

    Шаманством добиться правильного результата мне удалось:
    создаю параметр с типом Varchar2, а потом меняю тип параметра на Date отдельно не через мастер источника данных, а редактирование свойства Parameters. Так проверка не выполняется.

    Было ли это сразу или появилось недавно я не знаю.

    Да, на стандартном коннекторе работает нормально.
  • отредактировано 23:36
    Здравствуйте,

    Для параметра обязательно надо указывать св-во DefaultValue.
  • отредактировано April 2010
    AlexTZ написал: »
    Для параметра обязательно надо указывать св-во DefaultValue.

    Спасибо.
    Работает.

    Только не ясно, почему по разному работают два коннектора...

    Кроме того, сообщение об ошибке совсем не информативное.
    Да и не логично, как по мне, такое требование.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.