OleDB против ODBC: не требует ли один из них установки драйверов ДЛЯ ВСЕХ Oracle, MySQL, SQL Server? - PullRequest
0 голосов
/ 14 июля 2009

Я хочу, чтобы мое приложение могло работать с несколькими поставщиками БД. Другими словами, в зависимости от инфраструктуры БД клиента, схема БД будет развернута на одном из Oracle, MySQL, SQL Server. Я нахожусь между использованием ODBC и OleDB и следующими ключевыми требованиями, которые должны быть приняты во внимание при выборе:

  • Схема БД должна быть создана из приложения (мне сказали, что ODBC может быть проблематичным в этом случае, это правда?)
  • Настоятельно желательно, чтобы конечным пользователям не требовалось устанавливать какое-либо дополнительное программное обеспечение (например, Oracle Instant Client и т. Д.). Итак, драйвер должен быть предпочтительно либо:

    1. уже в комплекте с Windows. Есть ли в Windows универсальная версия ODBC / OleDB?
    2. иметь возможность связываться вместе с приложением. И.Е. в Java я могу связать драйвер JDBC для MySQL как файл .jar с моим приложением. Можно ли это сделать, включив файл .dll?
  • Настоятельно желательно, чтобы конечные пользователи не требовали выполнять какие-либо внешние настройки, такие как создание источников данных ODBC

Ура!

Ответы [ 4 ]

2 голосов
/ 14 июля 2009

Вам необходимо установить соответствующий драйвер для конкретной базы данных.

После установки строка подключения также будет в некоторой степени зависеть от базы данных.

При использовании ADO.NET большая часть взаимодействия с базой данных в коде может быть независимой при использовании общих интерфейсов (например, IDbCommand), а не подклассов, специфичных для провайдера, но фабрика, специфичная для провайдера, все еще будет необходима.

Даже в этом случае диалекты и типы данных SQL имеют значительные различия.

Ожидайте, что вам нужно будет очень хорошо разбираться в создании собственных аннотаций, инверсии управления (IoC) и отладке каждой отдельной базы данных. Последнее будет четко указывать на активную отладку на нескольких платформах баз данных с самого начала проекта, чтобы избежать внезапной необходимости значительных усилий по переносу.

1 голос
/ 14 июля 2009

Большинство драйверов ODBC / OLEDB используют «общий язык», для которого по-прежнему требуется какой-либо родной драйвер устройства или «установка клиента», предоставляемая поставщиком для правильного подключения к базе данных.

То, что вы хотите найти, - это правильный драйвер ADO.NET, в который будут встроены все необходимые библиотеки, или для этого может потребоваться только вторая DLL, которая не требует «установки клиента». ». Это также позволит легко использовать строку подключения в вашем файле app.config и все преимущества ADO.NET.

Вот несколько ссылок на наиболее распространенные:

1 голос
/ 14 июля 2009

Ну, да, но вам не нужны ни ODBC, ни OLEDB для этого. Вы можете получить 100% нативных поставщиков ADO.NET для SQL Server, MySQL и Oracle здесь http://www.datadirect.com/products/net/index.ssp.

1 голос
/ 14 июля 2009

Оба нуждаются в драйверах базы данных. Если нет, то уровень ODBC не знает, как подключиться к удаленной базе данных.

...