Подтвердить что ты не робот

Если я скомпилирую приложение VB6 на win7, ошибки ADODB.Connection с "Class не поддерживают автоматизацию или не поддерживают ожидаемый интерфейс",

Class does not support Automation or does not support expected interface

Я скомпилировал некоторый код VB6 на моей машине Win7 x64, и результат .exe не будет работать корректно на любой другой машине.

Код VB6 - это просто новый .exe файл с одним нажатием кнопки, ссылка на "Microsoft ActiveX Data Objects 2.6 Library" и следующий код в событии нажатия кнопки:

Dim db
Set db = New ADODB.Connection

Он работает корректно на моей машине, но нет других (даже других машин Win7 x64) (Обновление: я нашел ДВЕ других пользователей, где он работает, и один из них - Jeff Atwood!, но большинство машин имеют ту же проблему)

Я проверил экран ссылок на обеих машинах, чтобы узнать, не сработала ли ссылка (тогда она не будет компилироваться, хотя и компилируется отлично). Все выглядит законно. На 64-битных машинах ссылки переходят в SysWow64 вместо system32.

Я даже скомпилировал это успешно на 64-битной машине Vista и работал правильно. Это только компиляция на Windows 7, а затем запуск на любой другой машине, где происходит ошибка.

Ниже приведены результаты запуска CompChecker в моем поле:

comp checker results on box

Информация о реестре: ADODB.Connection имеет GUID HKEY_CLASSES_ROOT\CLSID {00000514-0000-0010-8000-00AA006D2EA4}

InprocServer32 - это% CommonProgramFiles%\System\ado\msado15.dll

4b9b3361

Ответ 1

Это проблема с Windows 7 SP1. См. http://support.microsoft.com/kb/2517589 для обходных путей.

Есть и другие способы:

Кроме того, еще одна вещь, msado15.dll не поддерживается на x64 Win 7, как указано здесь: http://support.microsoft.com/kb/983246. Это большая страница, просто найдите msado15.dll.

Ответ 2

Ознакомьтесь с версией компонентов MDAC на обеих машинах, используя этот инструмент

Также убедитесь, что вы используете ту же базу данных SQL Server (гадание), поскольку я заметил, что SQL Server 2008 x64 работает по-разному, чем предыдущие версии, обрабатывающие соединения (при использовании VB6)