Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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

Запускаю программу. Но опять таже ошибка.
Объясните на пальцах как ее устранить, что и куда нужно дописать что бы заработало.

smile smile

Автор: Akina 24.1.2006, 16:40
Цитата(ArtNeoX @ 24.1.2006, 17:33 Найти цитируемый пост)

Class not registered
Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4}

Это 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
это вот это что ли ?
smile

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

что делать? smile

Автор: Voldemar2004 25.1.2006, 10:11
Цитата(ArtNeoX @ 25.1.2006, 03:41 Найти цитируемый пост)

что делать?
Я решил эту проблему с помощью 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
Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь.

Автор: Exception 29.1.2006, 17:06
Цитата(ArtNeoX @ 28.1.2006, 19:46 Найти цитируемый пост)

Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь.

Тебе непонятно сказали? Скачай MDAC 2.8 SP 1, установи.
А вообще,
Модератор: Пожалуйста, один топик - один вопрос. smile

Автор: 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'
не удается найти уазанного постовщика. Вероятно, он установлен непраильно.

smile

Автор: 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
Цитата(ArtNeoX @ 4.2.2006, 14:05 Найти цитируемый пост)

а какие еще файлы нужно копировать и регистировать по мимо этого?

Дык вроде бы только этот.
Цитата(ArtNeoX @ 4.2.2006, 12:05 Найти цитируемый пост)

как пользоваться resvr32.exe

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
Цитата(ArtNeoX @ 4.2.2006, 21:39 Найти цитируемый пост)


Run-time error '3706'
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

что это за ошибка?

Установи там последний MDAC.

Автор: ArtNeoX 5.2.2006, 17:06
Да, установил я его - ни-фи-га...

Автор: kulibin 7.2.2006, 23:51
Цитата(ArtNeoX @ 5.2.2006, 13:16 Найти цитируемый пост)

Используется datagreed ей соответствует файл msado20.tlb

Господи! Кто тебе это сказал? Или сам догадался? smile
Прочти внимательнее название етого файла - ну написано же английским по белому - АДО это.
Вот табе код для Inno Setup - все нужные тебе длл/осх - у меня программа была с такими же референсами:
Код

Source: "Msjint35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall
Source: "Msjter35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall
Source: "msado20.tlb"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regtypelib
Source: "Msbind.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msdatgrd.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msstdfmt.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msvbvm60.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Scrrun.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "msjt4jlt.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "msjtor35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver

файлик: Msdatgrd.ocx - что это по твоему? smile.
В этом списке всё, что надо для адо и jet 3.51. Я в сетуп рограммы этой мдак не включал - токо эти длл из него выковырял. Датагрид то в мдак не входит.
тлб как руками зарегить - не помню можно ли regsvr32
а длл/осх смотри по списку - если стоит "regserver" - то надо регить - а если нет - то не надо!
Про regsvr32 - ты путь к файлу который региш писал?
вот так: regsvr32 C:\winda\...\...\my_dll.dll - путь полный надо.
Причём имена папок там длинные не поддерживаются - если больше 7 букв - то оставляеш токо 5 букв и тильду (~) с единичкой (myfolder = myfol~1).
а адо то в мдак точно входит - его руками не надо если мдак установил.

Вобчем тебе датагрид надо зарегистрировать(Msdatgrd.ocx). Токо боюсь что это не всё.
Если не поможет - проверь есть ли в системе все перечисленные в списке моём компоненты. Что надо ставь и регь - или просто кидай в ...\виндоуз\систем\ - если в списке на этом элементе нет ключа "regserver".
Список полный и проверен 2-мя годами smile - и до сих пор почти ежемесячно ставлю кому-то эту прогу - жалоб не было.
Добавлено @ 23:55
Ой блин - погоди! Ты с какой БД то работаеш? Я чёто решил что аксес - но потом токо понял что не видел слова этого нигде smile.
Вобчем если аксес и бд в формате аксеса 97 - то это оно. Если формат новее - то тебе надо установить JET 4.0! А если не аксес - то провайдер, однако, совсем не обязательно в мдаке твой есть smile. БД какая у тебя?

Автор: 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
Ну поздравляю smile. Но если программу будеш распространять более масштабно - то мдак этот (10Мб вроде весит) великоват - мягко выражаясь smile. А всё что нужно для его замены в моём предыдущем посте. Да и в system либы то ложить надо бы. Ну и для создания сетупов то качни что-то приличное - бат версии длл/осх не отслеживает. А руками устанавливать программы свои не гоже. Для этого есть отличные бесплатные программы.

Автор: ArtNeoX 9.2.2006, 07:19
кинь ссылочку.

Автор: Exception 9.2.2006, 08:20
Погугли "CreateInstall" - отличная вещь.

Автор: kulibin 9.2.2006, 11:35
http://www.innosetup.com/
А в другой теме cardinal ещё какой-то писал и утверждал что он круче. Ну этот супер - мне очень нравится. Он бесплатный. Делает всё что хочеш. И освоить его очень легко. Там есть мастер и примеры скриптов. Ну и справка есть. Ну и мой кусок скрипта что я давал можеш прямо скопировать и вставить. Токо не забудь другие файлы там написать, создание ярлыков и все файлы используемые ложи в ту же папку где и скрипт лежит. Можно путь к ним указать - но лучше этого не делать - и текста больше и путь может измениться - и будеш потом искать.
Ещё говорят его русифицировать можно - т.е. чтобы при установке программы русский текст выдавал. Но у меня руки не дошли и не помню как.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)