Exe Crash В ADODB.Соединение с "Класс не поддерживает автоматизацию"
Одна машина с MSVBVM60.dll ver 6.0.97.82, скажем OLD. Другая машина, имеющая MSVBVM60.dll ver 6.0.98.15, скажем, NEW. Exe, созданный из новых сбоев машины в строке new ADODB.Connection
на OLD-машине, дающей следующую ошибку
Ошибка времени выполнения "430": класс не поддерживает автоматизацию или не выполняет поддержка ожидаемого интерфейса
Как избавиться от этого? Моя главная задача - запустить exe на OLD-машине, создав новую машину. Чтобы не беспокоить конфигурацию новой машины, я попытался отменить регистрацию более старой версии и зарегистрировать новую версию на OLD-машине, но не успел. Существуют ли другие dll (s), используемые ADODB.Connection
, или мне нужно сделать что-то совершенно другое, чтобы избавиться от этого?
Ответы
Ответ 1
Это не связано с версиями среды исполнения VB и больше связано с библиотеками ADO (как ссылается на строку ошибок) и вызвано тем, что Microsoft нарушает совместимость в своих библиотеках ADO.
KB статья 2517589 объясняет, почему и решение, которое по существу перекомпилируется с совместимостью typelib.
Ответ 2
Лучше всего исправить всю среду исполнения VB6 на OLD-машине - вы можете загрузить с здесь.
Время выполнения VB6 распространяется как пакет, поэтому я бы не рекомендовал просто вставлять определенные DLL самостоятельно.
Я также рекомендую проверить, что обе машины, на которых вы работаете, используют одну и ту же версию MDAC, в частности, что OLD-машина имеет установленную версию, на которую ссылаются в вашем проекте.
Ответ 3
Принятый ответ не помог мне. Выполнены следующие шаги.
- Инструменты → Ссылки
- Снимите флажок:
- Объекты данных Microsoft ActiveX 6.1 Библиотека
- Библиотека записей Microsoft ActiveX 6.0.
- Microsoft ADO Ext. 6.0 для DDL и безопасности
- Проверьте:
- Объекты данных Microsoft ActiveX 2.8 Библиотека
- Microsoft DataX Data Recordset 2.8 Library
- Microsoft ADO Ext. 2.8 для DDL и безопасности