aelkatatny@eg Ответов: 1

Это дает мне ошибку# 429, когда я пытаюсь получить список серверов с помощью SQLDMO


Привет,
у меня есть большое приложение, написанное на vb6 sp6, и я парень из службы поддержки.
я знаю, что это устаревшая версия, но на самом деле это очень хорошее приложение.
у меня есть письменная функция для получения списка серверов с помощью SQLDMO
ниже приведен код:
Тусклые имена как SQLDMO.NameList
Dim SQLApp как SQLDMO.Application
Набор SQLApp = новая файле sqldmo.Применение

установить имена = SQLApp.ListAvailableSQLServers

затем он выдает мне код ошибки 429 "компонент ActiveX не может создать объект"

есть ли у вас какие-либо предложения, в чем может быть ошибка

Что я уже пробовал:

я попытался зарегистрировать его. SQLDMO.dll но безрезультатно

1 Ответов

Рейтинг:
0

Dave Kreskowiak

Обычно это означает, что отсутствует библиотека .DLL, используемая библиотекой SQLDMO. Это может быть не SQLDMO .DLL. Это может быть зависимость от другой библиотеки.

Есть и другая возможность .DLL-файлы существуют, но они могут быть основаны на COM и не зарегистрированы на машине.

Как выглядит код, который выдает ошибку? Не все приложение, а только фрагмент, который бросает и какая строка его бросает.


aelkatatny@eg

спасибо Дэйв,
но как я могу узнать отсутствующую зависимость или COM, который не зарегистрирован

Dave Kreskowiak

Ну, во-первых, SQLDMO устарел с SQL Server 2008. Вы все еще можете получить SQLDMO от https://www.microsoft.com/en-us/download/details.aspx?id=17943-да.

Это коллекция автономных установщиков. Хоть убей, я не могу вспомнить, у кого из этих монтажников есть DMO.

Вам придется протестировать каждый из них, чтобы выяснить, в каком из них есть DMO. Это не так плохо, как можно было бы предположить по размеру списка. Вы можете использовать только 32-разрядные установщики, которые не заканчиваются на "ia64" или "x64".


aelkatatny@eg

еще раз спасибо Дэйв,
но ссылка, которой вы поделились, предназначена для SQL server 2005, а я использую SQL Server 2008.
и на моей машине разработки программа работает нормально,
но когда я создаю его и пытаюсь развернуть на другой машине, сначала он выдает мне ошибку "модуль .dll не удалось зарегистрировать HRESULT -2147024714.
когда я пытаюсь перерегистрировать эту библиотеку DLL, она выдает мне следующую ошибку:
модуль "c:\program" не удалось загрузить
убедитесь, что двоичный файл хранится по указанному пути, или отладьте его, чтобы проверить наличие проблем с двоичной или зависимой библиотекой dll
указанный модуль не удалось найти.

Dave Kreskowiak

Это не "для sql server 2005". Компоненты, которые вы ищете, отделены от SQL Server и не зависят от версии. Просто последняя версия SQL Server, поставляемая вместе с компонентами, была выпущена в 2005 году.

Какая разница "module.dll - то есть, понятия не имею. Это похоже на то, что вы написали в своем приложении.

Тот самый "C:\Program" дело в том, что вы выполнили какую-то команду, но не обернули всю строку пути в символы". Каждый путь, в котором есть пробелы, должен быть заключен в двойные кавычки:

"C:\Program Файлы\Некоторые Папки\Некоторые File.dll"

aelkatatny@eg

я кое-что проверю и вернусь к тебе, братан.
заранее спасибо.

aelkatatny@eg

большое спасибо, Дэйв.
теперь он отлично работает после того, как я перерегистрирую 2 DLL после запуска regsvr32 в cmd, когда я запускаю его от имени администратора.
но у меня есть еще один вопрос, если вы можете мне помочь.
как убедиться, что эти библиотеки DLL будут успешно зарегистрированы при развертывании моего приложения?
как я уже говорил вам, приложение написано на VB6.
и я использую проект установки и развертывания в Visual Studio 2008 для проекта установки, чтобы сделать файлы install .msi и exe .
у вас есть какие-нибудь предложения?
и еще раз спасибо, брат.

Dave Kreskowiak

Я нашел этот проект установки и развертывания немного ... недостающий. Я никогда не влезу в его использовании. Поскольку я должен использовать InstallShield на работе, это то, что я использую все время.

В InstallShield это очень просто. Откройте компонент, удерживающий кнопку .DLL, которую вы хотите зарегистрировать, и нажмите на ее ветку файлов. Затем вы щелкаете правой кнопкой мыши файл, нажимаете кнопку Свойства и устанавливаете небольшой флажок с надписью "COM Self-Register". Сделано.

Или другой способ сделать это-просто использовать мастер импорта COM, и Installshield извлечет регистрационную информацию и сбросит все это в реестр для вас.

aelkatatny@eg

Большое Спасибо, братан.
могу ли я попросить вас помочь мне рассказать, как использовать installshield.
как мне показалось, это было немного сложно.

Dave Kreskowiak

Это слишком много информации, чтобы поместить ее в несколько постов.

https://helpnet.flexerasoftware.com/installshield21helplib/helplibrary/TutorialTop.htm-что?

aelkatatny@eg

Спасибо Дэйв,
я проверю этот учебник, и если у меня возникнут какие-либо проблемы, я свяжусь с тобой, братан.