Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > Помогите убрать ошибку |
Автор: ArtNeoX 24.1.2006, 16:33 |
Создал приложение. Оно работает только на компьютере где установлен vb6. При переносе на другой компьютер, при запуске программы возникают следующие ошибки: Class not registered Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4} Run-time error '3706' Не удается найти указанного поставщика. Вероятно, он установлен неправильно. Открываю файл Project1.vbp в блокноте. Вот его содержание: ----------------------------- Type=Exe Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\WINDOWS\System32\stdole2.tlb#OLE Automation Reference=*\G{00000200-0000-0010-8000-00AA006D2EA4}#2.0#0#..\..\..\Program Files\Common Files\system\ado\msado20.tlb#Microsoft ActiveX Data Objects 2.0 Library Reference=*\G{00020813-0000-0000-C000-000000000046}#1.5#0#..\..\..\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE#Microsoft Excel 11.0 Object Library Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDATGRD.OCX Form=Form1.frm Form=frmMain.frm Form=frmDocument.frm Form=frmTabl1.frm Module=Module1; Module1.bas Form=frmCheck1.frm Form=Form3.frm Form=Form2.frm Form=Form4.frm Reference=*\G{6B263850-900B-11D0-9484-00A0C91110ED}#1.0#0#..\..\..\WINDOWS\System32\MSSTDFMT.DLL#Microsoft Data Formatting Object Library Form=frmDocument2.frm Form=frmTabl2.frm Form=frmCheck2.frm Form=Form5.frm Form=Form6.frm Form=Form7.frm Form=Form8.frm Form=Form9.frm Form=Form10.frm IconForm="Form1" Startup="Form1" ExeName32="Magazine.exe" Command32="" Name="Project1" HelpContextID="0" CompatibleMode="0" MajorVer=1 MinorVer=0 RevisionVer=0 AutoIncrementVer=0 ServerSupportFiles=0 CompilationType=0 OptimizationType=0 FavorPentiumPro=0 CodeViewDebugInfo=0 NoAliasing=0 BoundsCheck=0 OverflowCheck=0 FlPointCheck=0 FDIVCheck=0 UnroundedFP=0 StartMode=0 Unattended=0 Retained=0 ThreadPerObject=0 MaxNumberOfThreads=1 DebugStartupOption=0 [MS Transaction Server] AutoRefresh=1 --------------------------------------- Копирую в папку где устанолена моя программа файлы на которые ссылется проект: msado20.tlb COMDLG32.OCX MSCOMCTL.OCX MSDATGRD.OCX и файлы которые просит при запуске MSSTDFMT.DLL msvbvm60.dll VB5DB.DLL Запускаю программу. Но опять таже ошибка. Объясните на пальцах как ее устранить, что и куда нужно дописать что бы заработало. ![]() ![]() |
Автор: Akina 24.1.2006, 16:40 | ||
Это DAO.DBEngine 3.5. Установи/зарегистрируй. |
Автор: ArtNeoX 24.1.2006, 18:05 |
как это сделать ? |
Автор: Akina 24.1.2006, 18:49 |
Скачать последний MDAC с сайта M$ и установить. |
Автор: Voldemar2004 24.1.2006, 19:34 |
Akina, может постоянную ссылку сделать на форуме на этот MDAC? В FAQ по VB 6. Уж очень часто люди сталкиваются с этой проблемой. Или скачать последнюю версию и положить на в FAQ. |
Автор: Exception 24.1.2006, 19:56 |
В шапке форума может? Типа "MDAC можно скачать здесь" |
Автор: ArtNeoX 24.1.2006, 21:26 |
Скачать последний MDAC с сайта M$ и установить. откуда? Добавлено @ 21:40 это вот это что ли ? ![]() Microsoft Data Access Components (MDAC)2.8 RU http://download.microsoft.com/download/c/f/2/cf2b5cd9-7ffd-4c19-971f-9ccaf0b57d48/MDAC_TYP.EXE Microsoft Data Access Components (MDAC)2.8 ENGL http://download.microsoft.com/download/c/d/f/cdfd58f1-3973-4c51-8851-49ae3777586f/MDAC_TYP.EXE |
Автор: ArtNeoX 25.1.2006, 03:41 |
скачал. на win xp sp2 не устанавливается, пишет что типа это уже установлено с виндовс. в win xp sp1 и win me установилось. но ошибка никуда не исчезла. прочитал на другом форуме что нужно написать в своем проекте при запуске строку DAO = CreateObject("DAO.DBEngine.35") однако теперь добавилась еще ошибка Run-time error '429': ActiveX component can't create object что делать? ![]() |
Автор: Voldemar2004 25.1.2006, 10:11 |
Я решил эту проблему с помощью C++ Builder от Borland. |
Автор: Akina 25.1.2006, 10:16 |
Последний - Microsoft Data Access Components 2.8 SP 1. И вообще - найти его на download.microsoft.com не составляет труда. А выкладывать тут и следить за обновлениями или давать ссылку и тоже следить за актуальностью - оно кому надо? |
Автор: ArtNeoX 28.1.2006, 18:46 |
Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь. |
Автор: ArtNeoX 29.1.2006, 19:35 |
Скачал, установил. Все осталось без изменений. |
Автор: Exception 30.1.2006, 17:36 |
У меня тоже так бажило. Решил переустановкой системы и сносом офиса. |
Автор: ArtNeoX 30.1.2006, 18:08 |
Есть ли какой либо инстолятор, который сам выбирает что нужно устанавливать? Если я добавлю в реестр windows инфу о том что на компьютере установлен vb6 и скопирую файлы которые требует программа в папку windows/system32 где они и находятся, заработает? |
Автор: cardinal 30.1.2006, 21:43 |
А это что? http://forum.vingrad.ru/index.php?showtopic=57092 (читай до конца!) и http://vingrad.ru/VB-VB-002926 |
Автор: ArtNeoX 31.1.2006, 19:23 |
У меня в References проекта выбраны: Visual Basic For Applications Visual Basic runtime objects and procedures Visual Basic Object and procedures OLE Automation Microsoft ActiveX Data Objects 2.0. Library Microsoft Excel 11.0 Object Library Microsoft Data Formating Object Library После установки Microsoft Data Access Components (MDAC)2.8 RU нужно ли что то подключать в проекте в References ? этой вот nsis можно сделать что бы исчезла ошибка Class not registered Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4} Run-time error '3706' Не удается найти указанного поставщика. Вероятно, он установлен неправильно. при создании инстолятора способом описанным в ссылке http://forum.vingrad.ru/index.php?showtopic=57092 ошибка осталась. |
Автор: ArtNeoX 31.1.2006, 21:22 |
сделал reg файл с таким содержанием REGEDIT4 [HKEY_CLASSES_ROOT\DAO.DBEngine.35] @="Microsoft DAO 3.51 Object Library DBEngine" [HKEY_CLASSES_ROOT\DAO.DBEngine.35\CLSID] @="{00000010-0000-0010-8000-00AA006D2EA4}" [HKEY_CLASSES_ROOT\CLSID\{00000010-0000-0010-8000-00AA006D2EA4}] @="DAO.DBEngine.35" [HKEY_CLASSES_ROOT\CLSID\{00000010-0000-0010-8000-00AA006D2EA4}\InprocServer32] @="C:\\TEMP\\DAO350.DLL" "ThreadingModel"="Apartment" [HKEY_CLASSES_ROOT\CLSID\{00000010-0000-0010-8000-00AA006D2EA4}\ProgID] @="DAO.DBEngine.35" кинул в папку c:\TEMP\DAO350.DLL Запустил reg файл. Потом программу. Теперь ошибка Data Access Error и Run-time error '3706' не удается найти уазанного постовщика. Вероятно, он установлен непраильно. ![]() |
Автор: ArtNeoX 4.2.2006, 11:05 |
как пользоваться resvr32.exe |
Автор: ArtNeoX 4.2.2006, 13:05 |
Как перенести программу использующую Microsoft DAO 3.51 Object Library на другой компьютер я разобрался. А вот как перенести программу использующую Microsoft ActiveX Data Objects 2.0 Library на другой компьютер не пойму. в References - ссылка на файл msado20.tlb, а какие еще файлы нужно копировать и регистировать по мимо этого? |
Автор: Exception 4.2.2006, 14:59 |
Дык вроде бы только этот. regsvr32.exe путь_к_твоей_длл_или_ocx |
Автор: ArtNeoX 4.2.2006, 20:39 |
при запуске программы использующей datagreed ошибка на другом компьютере Run-time error '3706' Не удается найти указанного поставщика. Вероятно, он установлен неправильно. что это за ошибка? |
Автор: ArtNeoX 5.2.2006, 13:16 |
Установка MDAC 2.8 не помогает. оишибка Run-time error '3706' Не удается найти указанного поставщика. Вероятно, он установлен неправильно. остается. Используется datagreed ей соответствует файл msado20.tlb regsvr32.exe msado20.tlb не работает. Пишет что надо или dll или OCX Какой файл надо прорегистрировать, что бы убрать ошибку ? Добавлено @ 13:17 Установка MDAC 2.8 не помогает. оишибка Run-time error '3706' Не удается найти указанного поставщика. Вероятно, он установлен неправильно. остается. Используется datagreed ей соответствует файл msado20.tlb regsvr32.exe msado20.tlb не работает. Пишет что надо или dll или OCX Какой файл надо прорегистрировать, что бы убрать ошибку ? |
Автор: Exception 5.2.2006, 13:24 | ||
Установи там последний MDAC. |
Автор: ArtNeoX 5.2.2006, 17:06 |
Да, установил я его - ни-фи-га... |
Автор: kulibin 7.2.2006, 23:51 | ||
Господи! Кто тебе это сказал? Или сам догадался? ![]() Прочти внимательнее название етого файла - ну написано же английским по белому - АДО это. Вот табе код для Inno Setup - все нужные тебе длл/осх - у меня программа была с такими же референсами:
файлик: Msdatgrd.ocx - что это по твоему? ![]() В этом списке всё, что надо для адо и jet 3.51. Я в сетуп рограммы этой мдак не включал - токо эти длл из него выковырял. Датагрид то в мдак не входит. тлб как руками зарегить - не помню можно ли regsvr32 а длл/осх смотри по списку - если стоит "regserver" - то надо регить - а если нет - то не надо! Про regsvr32 - ты путь к файлу который региш писал? вот так: regsvr32 C:\winda\...\...\my_dll.dll - путь полный надо. Причём имена папок там длинные не поддерживаются - если больше 7 букв - то оставляеш токо 5 букв и тильду (~) с единичкой (myfolder = myfol~1). а адо то в мдак точно входит - его руками не надо если мдак установил. Вобчем тебе датагрид надо зарегистрировать(Msdatgrd.ocx). Токо боюсь что это не всё. Если не поможет - проверь есть ли в системе все перечисленные в списке моём компоненты. Что надо ставь и регь - или просто кидай в ...\виндоуз\систем\ - если в списке на этом элементе нет ключа "regserver". Список полный и проверен 2-мя годами ![]() Добавлено @ 23:55 Ой блин - погоди! Ты с какой БД то работаеш? Я чёто решил что аксес - но потом токо понял что не видел слова этого нигде ![]() Вобчем если аксес и бд в формате аксеса 97 - то это оно. Если формат новее - то тебе надо установить JET 4.0! А если не аксес - то провайдер, однако, совсем не обязательно в мдаке твой есть ![]() |
Автор: ArtNeoX 8.2.2006, 20:21 |
kulibin, спасибо за исчерпывающий ответ. Но я уже разобрался. Сделал вот как. PDWizard создал MDAC_TYP.exe со всеми компанентами. Установил его на компьютере без VB6 в папку со своей программой поместил файлы DAO350.DLL MSSTDFMT.DLL VB5DB.DLL и REGSVR32.exe создал bat файл со следующим содержанием. @echo off RegSvr32.exe DAO350.DLL RegSvr32.exe MSSTDFMT.DLL PAUSE Запустил bat файл на выполнение для регистрации файлов. Теперь все работает. |
Автор: kulibin 8.2.2006, 23:39 |
Ну поздравляю ![]() ![]() |
Автор: ArtNeoX 9.2.2006, 07:19 |
кинь ссылочку. |
Автор: Exception 9.2.2006, 08:20 |
Погугли "CreateInstall" - отличная вещь. |
Автор: kulibin 9.2.2006, 11:35 |
http://www.innosetup.com/ А в другой теме cardinal ещё какой-то писал и утверждал что он круче. Ну этот супер - мне очень нравится. Он бесплатный. Делает всё что хочеш. И освоить его очень легко. Там есть мастер и примеры скриптов. Ну и справка есть. Ну и мой кусок скрипта что я давал можеш прямо скопировать и вставить. Токо не забудь другие файлы там написать, создание ярлыков и все файлы используемые ложи в ту же папку где и скрипт лежит. Можно путь к ним указать - но лучше этого не делать - и текста больше и путь может измениться - и будеш потом искать. Ещё говорят его русифицировать можно - т.е. чтобы при установке программы русский текст выдавал. Но у меня руки не дошли и не помню как. |