Использование Лоцман API в .NET

Автор K9, 19.09.08, 13:50:26

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

AI

Я написал пример приложения, которое подключается к серверу, запрашивает список БД и выводит обозначения проектов для выбранной БД.

Приложение запрашивает интерфейс непосредственно у СОМ+ объекта на сервере, так что в этом случае ничего в реестр добавлять не надо.

Преобразование возвращаемого набора данных производится с помощью объекта DataSet
Private Sub FillProjectsList()
        Dim ds As New Loodsman.DataSet

        ds.DATA = _server.GetProjectList(errorCode, errorMessage)
        AssertErrorCode()

        While Not ds.Eof
            lbProjects.Items.Add(ds.FieldValue("_PRODUCT").ToString())
            ds.Next()
        End While
    End Sub

YorikER

Уважаемый AI. Спасибо понял...

Администратор

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

Надеюсь, тема вернётся в русло обучения K9 программированию. Спасибо за понимание.

K9

#23
Для админа ...

Ну да ... конечно ... в Коломне то оно виднее!!!

Мне скрываться совершенно нет смысла!!!
Свое имя и фамилию я здесь выкладывать не собираюсь ни кому!!!
Место, где я работаю - также!!!
Это уж простите конфиденциальная информация, которую я здесь не обязан выкладывать!!!

Но уж если Вы так рьяно заявляете, что знаете обо мне все!!! Милости прошу ...!!!
Скажите это всему миру!!!
А потом посмотрим, что будет дальше ...!!!
Чего же прятаться за набор безсмысленных фраз!!!
Хотите блеснуть умом ...???  :-))) Попробуйте!!!
Это Вы здесь можете редактировать сообщения, так как Вам это удобно, хамить,
но на практике ... есть один человек, от которого зависит Ваша работа!!!
Письмо к нему я отшлю уже на следующей неделе - тогда и посмотрим
как Вы заговорите!!!
Готовтесь писать личные извинения!!!

И еще ... ни какого позора я ни в чем не вижу!!!
Позоритесь Вы сами, но ни как не я!!!
Все, что было сказано ранее - это моё мнение, как специалиста и пользователя
лицензионного ПО!!!
Информация абсолютно достоверна и проверена на моем личном опыте!!!

По поводу программирования - а Вы сами то что можете???
Спасибо YorikER и AI, но ни как не специалистам аскона!!!

Для всех остальных ...

Язык VB.NET очень сильно упрощает сам процесс программирования!!!
На данный момент, я продолжаю его изучение и при чем успешно!!!
Всем кому это интересно, пишите на e-mail!!!

YorikER

Рекомендую остановиться обоим... И не провоцировать друг друга... Критиковать всегда легче, чем самому пройти свой путь... Мы так легко на кухне критикуем Билла Гейтса, ругаем всенародно любимую систему Windows... Но когда выходит новая версия, бежим вприпрыжку за пиратскими версиями, чтобы посмотреть: я что там новенького придумал этот рыжий... АСКОН имет весьма неплохие коммерческие результаты, несмотря на все издержки... Одно дело освоить программные продукты для собственного пользования, другое дело выпустить коммерческую версию и добиться какого-то успеха на IT рынке... На своем примере могу сказать, что несмотря на серьезные результаты в освоении ЛОЦМАНА на реально действующем предприятии (у меня перебывало достаточно большое количество делегаций), похвастаться успехами в коммерциализации проекта пока не могу... Поэтому уважаемый K9, успехов вам в освоении NET технологий в ЛОЦМАНЕ, поменьше слов и "распальцовки", направьте свою энергию недовольства АСКОНОМ на созидательный процесс...

Администратор

Уважаемый K9!

Спасибо за подтверждение того, что все Ваши претензии — это личное мнение, а не официальная позиция «ОАО Вымпел». Было бы неплохо в дальнейшем подтверждать их объективными фактами, а не голословными эмоциональными обобщениями.

За публичные препирательства со мной Вы получаете второе замечание.

Третье замечание — за враждебное поведение и упорную провокацию конфликта.

По совокупности замечаний Вы отключаетесь от Форума на две недели.

Ваше сообщение остаётся здесь как пример того, как не надо вести себя в профессиональном Форуме.  :|

Hocum

Добрый день! Вопрос в первую очередь, наверно, к AI.

При попытке запустить приложение из примера LoodsmanClient на машине без установленного лоцмана, возникает следующая ошибка (см. рисунок). Означает ли это, что приложения, созданные таким образом, могут быть запущены только на машинах с лоцман-клиентом?

Спасибо!

YorikER

Я плохо понял это сообщение, похоже нет соединения с сервером приложений... Проверьте GUID... Явно что-то с регистрацией COM-компонента...

K9

Цитата: Hocum от 01.02.10, 14:30:32
Добрый день! Вопрос в первую очередь, наверно, к AI.

При попытке запустить приложение из примера LoodsmanClient на машине без установленного лоцмана, возникает следующая ошибка (см. рисунок). Означает ли это, что приложения, созданные таким образом, могут быть запущены только на машинах с лоцман-клиентом?

Спасибо!

Если на машине не установлен Лоцман клиент, то работать с API вы не сможете и именно от сюда и возникает такая ошибка!!!
Ставте клиент и все должно работать!!!

YorikER

Не совсем так категорично... Если работать в Win32 с DCOM соединением, то клиента ставить не обязательно... Просто клиент ЛОЦМАНа при установке настраивает какие-то службы DCOM соответствующим образом, а все начинает работать... Мы, чтобы уйти от лицензионных проблем, ставили клиента ЛОЦМАНа, затем своего собственного клиента, после чего клиента ЛОЦМАНа удаляли с машины... Все работает без проблем... Порядка 300 клиентов на предприятии...

AI

Ошибка "интерфейс не зарегистрирован" связана с тем, что на клиентском рабочем месте не зарегистрирован сервер приложений Лоцман. Сделать это можно следующим образом

Цитата: AI от 24.09.08, 07:30:22
Если работаете на .NET на delphi переходить не стоит - это будет шаг назад. На VB.NET с Лоцманом работать не приходилось, но могу предположить, что понадобится сделать следующее:

1. Скопировать на клиентское рабочее место библиотеку LoodsmanAppServerMain.dll
2. Зарегистрировать ее командой regsvr32 LoodsmanAppServerMain.dll
3. В коде прописать подключение следующим образом: CreateObject("LoodsmanServerApplication.MainSystem", "имя сервера приложений")

При развертывании своего приложения библиотеку LoodsmanAppServerMain.dll нужно будет регистрировать на каждом рабочем месте

После регистрации LoodsmanAppServerMain.dll с клиента можно удалить, главное, чтобы ключи в реестре появились.

Hocum

AI, спасибо большое! Упустил этот ваш пост...

K9

Для AI!!!

Боюсь, что в данному случае, вряд ли, что получится!!! Я уже когда то подобное пробывал и результат был нулевой!!!
Скажем так ... зарегистрировав в реестре класс мы всего лишь используем его для обращения к библиотеке, но не как не работу
по схеме клиент - сервер!!! А сама библиотека подобного механизма не дает, так как суть ее - хранение функций для получения данных из Лоцмана или их записи туда!!! Для Правильной работы необходимо, чтобы был создан DCOM объект, так как без него подключение к серверу приложений вряд ли возможно будет создать!!!

Мне кажется нужно не просто библиотечку зарегить, а поставить Лоцман и посмотреть, куда и что он пишет и какие записи создает в реестре!!! При полной имитации данных действий может, что то и получится - иначе ни как!!!

nickmick

У меня версия Лоцмана 8.5 и в зарегистрированном com-объекте Interop.Loodsman.dll нет класса DataSet.
В примере от AI в этой же библиотеке есть DataSet. При подключении этого файла, компилятор, естественно выдает исключение на отсутствующий com-объект в строке:
Dim ds As New Loodsman.DataSet
От какой версии Лоцмана библиотека у Al и как мне зарегестрировать эту версию библиотеки у себя (есть ли какой-то пакет или dll)?

K9

Цитата: nickmick от 26.03.10, 12:45:19
У меня версия Лоцмана 8.5 и в зарегистрированном com-объекте Interop.Loodsman.dll нет класса DataSet.
Вообще то такого быть не может!!! Пришлите вашу библиотечку (loodsman.dll) на мой почтовый ящик (lexius_2004@mail.ru) - я посмотрю!!!
Это очень странно!!!

Danila

А есть пример разработанного плагина для Visual C++? Само собой на .Net платформе...

Я, конечно, понимаю, что АСКОН разрабатывает все только на дельфи, но можно было бы помочь и подсказать и тем, кто работает в других средах разработки...

YorikER

Для AI Наконец то дошел до вашего примера...
Цитата: AI от 01.10.08, 10:01:10
Я написал пример приложения, которое подключается к серверу, запрашивает список БД и выводит обозначения проектов для выбранной БД.

Приложение запрашивает интерфейс непосредственно у СОМ+ объекта на сервере, так что в этом случае ничего в реестр добавлять не надо.

Преобразование возвращаемого набора данных производится с помощью объекта DataSet
Private Sub FillProjectsList()
        Dim ds As New Loodsman.DataSet

        ds.DATA = _server.GetProjectList(errorCode, errorMessage)
        AssertErrorCode()

        While Not ds.Eof
            lbProjects.Items.Add(ds.FieldValue("_PRODUCT").ToString())
            ds.Next()
        End While
    End Sub


Подключение к СП нормально, к базе данных только через SQL аутентификацию, метод ConnectToDBEx, а вот при создании Dim ds As New Loodsman.DataSet, VS2008 выдает ошибку "Сбой при получении производства объектов класса COM ..."
Есть ли комментарии?

YorikER

Правильно ли я понял, что речь идет о версии ЛОЦМАНа (должна быть ЛОЦМАН 8.5 SP2)?

YorikER

Установил SP2, все нормально, объект Loodsman.DataSet присутствует, только кто скажет что делать дальше, как этот набор данных прикрутить к DBGrid...

Болт

Друзья, ну чего сыр-бор развели в самом деле?
Помню, что ранних версиях ЛОЦМАН, если сильно не хотелось ставить клиента, то нужно было зарегистрировать библиотеку типов LoodsmanAppServerMain.tlb, чтобы можно было работать с сервером приложений из скриптовых языков.  Как сейчас - я не знаю. Спросили бы в техподдержке, наверняка ответят.

Формальная сторона вопроса - что мешает установить клиентскую часть ЛОЦМАН и снять все имеющиеся проблемы?