Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Помогите оживить программу...

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы специалистов по адаптации системы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Баландин Денис



Зарегистрирован: 15.08.2006
Сообщения: 44
Откуда: Екатеринбург

СообщениеДобавлено: Вт 08 Дек 2009 22:52    Заголовок сообщения: Помогите оживить программу... Ответить с цитатой

Когда-то работая в управлении архитектуры, написал несколько модулей для Ингео, которые взаимодействовали с системой Мониторинг.
Использовалась Инмета версии 1.9.66, но недавно, после очередного upgrad'а системы (на одну из последних версий Инметы), модули отказались работать выдавая ошибку: Interface not supported Sad


для их работы использовался объект InMetaCR.InMetaDataServiceClient, функции доступа к Инмете были примерно такие...

Код:

function GetDataServiceClient: boolean;
begin
  // Получение доступа к реестровой подсистеме Инмета
  if Trim(GetInmetaUrl)<>'' then begin
    gDataServiceClient := CreateOLEObject('InMetaCR.InMetaDataServiceClient') as InMetaDataServiceClient;
    gDataServiceClient.Ingeo := gInGeoApp;
    gDataServiceClient.ServerURL:=GetInmetaUrl;
    gDataServiceClient.SpatialConfigURL:=GetInmetaUrl+'/spatial-config.xml';
    gSpatialConfigObject := gDataServiceClient.SpatialConfig;
    inc(GDSCounter);
    result:=true;
  end
  else result:=false;
end;

function GetInmetaObject(ingObjectID: string): Variant;
var
  anRegisterNo: string;
  anIngeoObj: IIngeoMapObject;

  aLayerID, aClassName,
  anInmetaLinkProperty, aLayerLinkTable,
  aLayerLinkField, aLayerClassifierField: WideString;

  WhereSQL: string;
  anObjectArray,
  anObjectInfo: Variant;
begin
  GetDataServiceClientAsIf;
  if Trim(ingObjectID)='' then exit;
  if VarIsNull(gDataServiceClient) then exit;
  if VarIsNull(gSpatialConfigObject) then exit;

  // Берем точное имя класса из LinkTable, медленнее но...
  aClassName := GetInmetaClassNameExt(ingObjectID);
  //aClassName := GetInmetaClassName(ingObjectID);
  if aClassName = '' then exit;

  aLayerID:=gIngeoApp.ActiveDb.MapObjects.LayerIDFromObjectID(ingObjectID);
  anIngeoObj := gIngeoApp.ActiveDb.MapObjects.GetObject(ingObjectID);

  try
      gSpatialConfigObject.GetLinkInfo(aClassName, aLayerID,
                                      anInmetaLinkProperty, aLayerLinkTable,
                                      aLayerLinkField, aLayerClassifierField);
      anRegisterNo := anIngeoObj.SemData.GetValue(aLayerLinkTable,aLayerLinkField,0);
  except
      msgbox('Error Into [GetInmetaObject]');
      anRegisterNo := '';
  end;
  if anRegisterNo='' then exit;

  // Берем инф. по объекту из Inmeta
  try
      WhereSQL:=anInmetaLinkProperty+'Property'+' = '+QuotedStr(anRegisterNo);
      anObjectArray:=gDataServiceClient.QueryObjectInfoArray(aClassName,WhereSQL,null,'');
      anObjectInfo:=anObjectArray[0];
      result:=anObjectInfo;
  except
      msgbox('Error Into [GetInmetaObject]');
      result:=Null;
  end;
end;


может быть кто-нибудь знает что там изменилось, и как это исправить с минимальными затратами?
P.S. заранее благодарен.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Ср 09 Дек 2009 14:01    Заголовок сообщения: Ответить с цитатой

Возможно, изменились IID интерфейсов.
Попробуйте перекомпилировать Ваш проект.

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы специалистов по адаптации системы Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB