2016-10-05 3 views
0

У меня есть устаревшее приложение 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

Как мне изменить свой код, чтобы он работал? Нужно ли добавлять ссылку на любую библиотеку и изменять код?

Спасибо.

ответ

1

Вам не нужно менять код. Вам нужно попросить «их» создать 32-разрядный DSN-код ODBC. VB6 требует этого для подключения.

Дополнительную информацию о this Microsoft page.

Извлечение из страницы

To manage a data source that connects to a 32-bit driver under 64-bit platform, use c:\windows\sysWOW64\odbcad32.exe.

+0

Это не представляется возможным создать 32-битный ODBC DSN. Как я уже упоминал, база данных сторонних разработчиков теперь является 64-разрядной и автоматически создает 64-битный ODBC DSN во время установки, и то же самое работает при подключении с помощью мастера подключения к данным Excel и использовании ODBC DSN в качестве источника данных. Когда Excel может работать с использованием ODBC DSN, не возможно ли, чтобы мой код VB6 работал с незначительными изменениями? – AllSolutions

+0

Может ли 32-разрядный драйвер работать с 64-разрядной базой данных? – AllSolutions

+1

Он должен уметь. Для СУБД клиент-сервер драйвер ODBC действительно является «терминалом» для сервера, обменивается текстовыми или двоичными форматами данных через TCP-соединение или другой механизм IPC, такой как DCOM, CORBA, именованные каналы и т. Д. привязка на уровне вызова процедуры вообще. – Bob77