• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Loodsman.Dataset в приложени на С# для получения результатов API функций

Автор 1ndifferent, 18.06.13, 18:06:02

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

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

1ndifferent

Доброго времени суток.
Пытаюсь вызвать API функции лоцмана из клиентского приложения на C#. Почитал темы на форуме, сделал Wrapper`ы LoodsmanAppServerMain.tlb и loodsman.tlb (нашел его в папке \ASCON\Loodsman\SDK\PlugIns\Examples\VC)
Удается подключиться к серверу приложений, и получить список БД без ошибок.
using System;
using System.Collections.Generic;
using System.Text;
using Interop.LoodsmanAppServerMain;

namespace interop_console
{
    class Program
    {
        static void Main(string[] args)
        {
            var tp = Type.GetTypeFromCLSID(new Guid("{392BA982-A82F-44AB-BA8A-69BE25199F73}"), "DC");
            Interop.LoodsmanAppServerMain.MainSystem _server;
           
            string appProgID = "LoodsmanServerApplication.MainSystem";

            _server = (MainSystem)Activator.CreateInstance(tp);

            object errorCode = new object();
            object errorMessage = new object();
           
            string dbList = _server.GetDBList(ref errorCode, ref errorMessage).ToString(); ;

            object res = _server.ConnectToDB("DEMO", out errorCode, out errorMessage);
            Interop.Loodsman.DataSet ds = new Interop.Loodsman.DataSet();
            ds.DATA = _server.GetProjectListEx(true, out errorCode, out  errorMessage);
        }
    }
}

При попытке вызвать функцию, которая в Delphi возвращает TClientDataset и получить результат выполнения в Loodsman.Dataset получаю ошибку:

Пробовал регистрировать Loodsman.tlb на клиенте и на сервере при помощи regtlib, пишет, что регистрация прошла успешно, на результат никак не влияет.
В одной из тем, написано, что для работы в системе должна присутствовать Loodsman.dll, ни на клиенте, ни на сервере не нашел такой (у нас Лоцман 2013 версии).
Что я делаю не так? какие еще есть варианты получения набора данных (TClientDataset) в программах на фреймворке?

mDmitriy

1. Подключить как Reference Loodsman.tlb
или
2. Подключить midas.dll из Дельфи, где описан этот датасет
или
3. Получать результаты в xml и не связываться с этим датасетом.

PS. C DataSet из Loodsman.tlb связана какая-то хрень - он появляется в списке доступных интерфейсов в Object Browser не сразу.
У меня тоже такое было, потом вылечилось после чистки проекта и перебилживания всего.



+ Благодарностей: 1