У меня есть устаревшее приложение VB6, которое делает подключения ODBC к собственной сторонней базе данных с использованием ODBC.Перенос кода VB6 на использование 64-разрядного ODBC DSN
Dim con As Object ' New ADODB.Connection
Set con = CreateObject("ADODB.Connection")
con.Open ("DB64bitDSN")
Раньше это работало до сих пор. Недавно они установили 64-разрядную версию базы данных сторонних разработчиков. База данных сторонних разработчиков автоматически создает 64-разрядный ODBC DSN во время установки, и то же самое работает при подключении с помощью мастера подключения к данным Excel и использовании ODBC DSN в качестве источника данных.
Но мой код дает ошибку:
Ошибка Описание: [Microsoft] [ODBC Driver Manager] Указанный DSN содержит Несоответствие архитектуры между драйвером и применением
Источник ошибки: Microsoft OLE DB Provider для Водители ODBC
Как мне изменить свой код, чтобы он работал? Нужно ли добавлять ссылку на любую библиотеку и изменять код?
Спасибо.
Это не представляется возможным создать 32-битный ODBC DSN. Как я уже упоминал, база данных сторонних разработчиков теперь является 64-разрядной и автоматически создает 64-битный ODBC DSN во время установки, и то же самое работает при подключении с помощью мастера подключения к данным Excel и использовании ODBC DSN в качестве источника данных. Когда Excel может работать с использованием ODBC DSN, не возможно ли, чтобы мой код VB6 работал с незначительными изменениями? – AllSolutions
Может ли 32-разрядный драйвер работать с 64-разрядной базой данных? – AllSolutions
Он должен уметь. Для СУБД клиент-сервер драйвер ODBC действительно является «терминалом» для сервера, обменивается текстовыми или двоичными форматами данных через TCP-соединение или другой механизм IPC, такой как DCOM, CORBA, именованные каналы и т. Д. привязка на уровне вызова процедуры вообще. – Bob77