Чтобы подключиться к 64-битной базе данных (Oracle / DB2 / Postgresql / SQL Server) из 32-битного программного обеспечения через ODBC, нужен ли мне 32-битный клиент базы данных или достаточно только 32-битного драйвера ODBC.
В качестве примера от Oracle, когда я устанавливаю сервер Oracle, 32-разрядный администратор ODBC не обязательно имеет запись для Oracle, поскольку 32-разрядный драйвер ODBC не существует. Чтобы подключиться, мне пришлось установить 32-битный клиент Oracle, после чего я вижу запись ODBC.
Поэтому мой вопрос: для подключения к 64-битной базе данных из 32-битного приложения нужен ли мне 32-битный клиент базы данных (тонкий / полный) или просто существует 32-битный драйвер ODBC, который можно установить для установления соединения ,
Какой клиент вы используете, зависит от архитектуры клиентского компьютера, который вы используете, а не от сервера.
IIRC, с Oracle вам нужно установить клиент и драйвер ODBC. Клиент фактически обрабатывает соединение с базой данных, в то время как уровень ODBC переводит ODBC-речь в то, что понимает клиент.
Я предполагаю, что другие платформы аналогичны, хотя возможно, что некоторые базы данных предоставляют единый установщик клиента, который может установить и клиент, и драйвер ODBC.
При использовании ODBC важно использовать архитектуру ODBC, соответствующую вашему клиентскому приложению. Например, если вы используете x86 Access, вам потребуется 32-битный драйвер ODBC и клиент.
Когда я установил SQL-сервер, связанный с Oracle, я установил:
Архитектура драйвера должна соответствовать архитектуре машины. В моем случае это был 64-битный Windows Server, поэтому я использовал 64-битный драйвер (win64_11gR2_client.zip).
Затем я запустил Net Config. Помощник и настройка конфигурации оракула (имя хоста / порта / пользователя / пароля / службы). Убедитесь, что вы прошли тестирование соединения здесь. Это настроит ваш файл tnsnames.ora (% path% \ product \ 11.2.0 \ client_1 \ network \ admin \ tnsnames.ora)
Если вы не можете подключиться, загляните в файл sqlnet.ora. Я должен был изменить мой, чтобы прочитать SQLNET.AUTHENTICATION_SERVICES= (NONE)
прежде чем я смог успешно подключиться.
Затем я запустил ODBC, чтобы настроить системный DSN, используя то же имя, что и в Net Config. Ассистент.
Следующее действительно для Oracle, я не знаю, все ли это применимо и к другим RDBMS.
Сервер базы данных и клиент независимы друг от друга, то есть вы можете подключиться с помощью 32-разрядного клиента Oracle к 64-разрядному серверу базы данных Oracle.
Однако архитектура ODBC-Driver и Oracle Client должна совпадать, т. Е. 32-разрядный драйвер ODBC работает только с 32-разрядным клиентом Oracle, а 64-разрядный драйвер ODBC нуждается в 64-разрядном клиенте Oracle. Это ограничение распространяется также на других провайдеров, таких как OLE DB или ODP.
Конечно, для 64-битного клиента Oracle требуется 64-битная Windows. Установка 32-битного клиента Oracle в 64-битной Windows не является проблемой.
Также возможно иметь как 32-разрядный, так и 64-разрядный клиент Oracle (и, следовательно, обе архитектуры драйверов ODBC), установленные на одном компьютере. Тем не менее, вы должны сделать несколько «трюков», чтобы они оба работали без проблем.