Я там
У меня есть такой сценарий:
a) Блокнот: Windows Server 2008 R1, Visual Basic 6 со всем пакетом обновления.
b) Рабочий стол: Windows Server 2008 R1 (последнее обновление до sp1, я не знаю, виновен ли он), Visual Basic 6 со всем пакетом обновления.
c) Клиентский компьютер (Windows XP)
Я создал исполняемый файл в a) и установил его в c) .Он использует ADO (msado15.dll) и отлично работает в a) и C)
Затем, используя тот же код, я попытался сделать то же самоев b) (компиляция в b) ) и работает в b) , но не работает в c) .Я проверил, что это тот же код в a) и в b)
В резюме:
A
- executetable_compiled_in_a.exe РАБОТЫ
- executetable_compiled_in_b.exe РАБОТЫ
B машина
- executetable_compiled_in_a.exe РАБОТЫ
- executetable_compiled_in_b.exeРАБОТАЕТ
C машина (клиентский компьютер)
- executetable_compiled_in_a.exe РАБОТАЕТ
- executetable_compiled_in_b.exe СБОЙ!
Theсообщение об ошибке
Класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс
и запускается по линии
Set Data = New ADODB.Connection
Итак, яне понимаю, в чем проблема, оба используют одну и ту же ссылку, но b) сгенерировал другой исполняемый файл.
ps: MSDAC_TYP НЕ РАБОТАЕТ В XP, и это не проблемаMSDAC, потому что исполняемый файл, сгенерированный в a), работает в c).
ps2: я также попытался использовать msado27.tlbи msado28.tlb с теми же результатами.
ps3: машины моего разработчика (a) и b)) - 64 бита, а клиентский компьютер - 32 бита.
Спасибо.
Обновление
Последняя служба Windows Server 2008 R1 (и я думаю, что то же самое для Windows 7) обновляет версию ADO и исполняемые файлы.Короче говоря, последний пакет обновления 1 (SP1) является злым и принесет много неприятностей, по крайней мере для ADO и машин для разработки.
msado15.dll без пакета обновления 6.1.7600
msado15.dll с сервисомпакет 6.1. 7601