powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как избавиться от выскакивающей ошибки?
25 сообщений из 32, страница 1 из 2
как избавиться от выскакивающей ошибки?
    #34793694
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые гуру!
Cache 2007.1
вопрос: как избавиться от ошибки выскакивающей при компиляции класса?
"Can not compile class 'Class1' because class 'Class2' is not 'up-to-date'"
соответственно в Class1 есть свойство определенное как Property1 as Class2
Сейчас помогает только полная компиляция всего проекта, а хочется чтоб копилировался только Class1
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34793921
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю что он не компилит этот класс потому что он не изменился...
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34793943
LenRover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сначала скомпилировать class2, а потом class1.
либо скомпилировать папку, в которой находятся оба класса
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794024
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если начинаю компилировать тот класс из-за которого началась "заварушка", то обязательно находится класс из-за которого выдается такая же ошибка
если начинаю компилировать пакет, то находится класс из другого пакета который выдает такую же ошибку.
в итоге приходится компилировать весь проект, что занимает какое-то время

PS компилирую из студии
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794035
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вам лишний довод к не усложнению структур.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794066
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть бы параметры компиляции (галки из студии) привел бы ....

На крайний случай ставь третью (план...)галку ...
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794428
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вроде бы разобрался:
все классы и программы "добавил в проект" и теперь для вывода на экран класса или программы высвечиваю его из вкладки "проект", а до этого из вкладки "область".
Пока вот ни одной ошибки не выскочило
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794514
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница в том, откуда компилить? Это можно делать и из терминала.

Эта проблема есть и у нас, у нас классов около 300, компилишь один с флагом "компилить связанные", компилит около 200. А иначе - класс устарел. Пока решаем удалением глобала oddDEP, который хранит вот такие зависимости - поссле этого забывает вообще все.

Проблема уже в WRC, выложено решение для каше 5.2.3, правда еще не проверил
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794534
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Вот вам лишний довод к не усложнению структур.
Категорически не согласен


Кстати, вот такая команда вам покажет, что же у вас устарело на самом деле
d isuptodate^%occClass("myclassname",.cache,0,1)
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794590
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил...
Код: plaintext
1.
2.
VERS>d isuptodate^%occClass("myclassname",.cache, 0 , 1 )
isuptodate called with myclassname
NOTUPTODATE:myclassname ^oddCOM does not exist
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794741
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если реальный класс подставить?
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794758
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это все чтоли классы так проверять
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
VERS>d isuptodate^%occClass("ver.Abon",.cache, 0 , 1 )
isuptodate called with ver.Abon
ischildrelationshipuptodate called with ver.Abon
isuptodate called with %Library.CacheProperty
ischildrelationshipuptodate called with %Library.CacheProperty
isuptodate called with %Library.Persistent
ischildrelationshipuptodate called with %Library.Persistent
isuptodate called with %Library.CacheProperty
isuptodate called with %Library.CacheString
ischildrelationshipuptodate called with %Library.CacheString
isuptodate called with %Library.ExtentSQLQuery
ischildrelationshipuptodate called with %Library.ExtentSQLQuery
isuptodate called with %Library.SQLQuery
ischildrelationshipuptodate called with %Library.SQLQuery
isuptodate called with %Library.Query
ischildrelationshipuptodate called with %Library.Query
isuptodate called with %Library.RegisteredObject
ischildrelationshipuptodate called with %Library.RegisteredObject
isuptodate called with %Library.String
ischildrelationshipuptodate called with %Library.String
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794817
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, только у меня больше 50ти страниц на класс
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34794835
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, только у меня больше 50ти страниц на класс
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34795453
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самое интересное, что если изменишь сегодня какой-то класс, то уже вчерашние ZEN приложения не запускаются, пишет тоже такой-то класс устарел. И это пока тока в тестовом режиме локально, даже не знаю что будет когда на сервер поставлю )))))
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34795964
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компилите все и киляйте oddDEP. И как только скажет, что что-то устарело - киляйте снова.
Некрасиво, а что делать?

А там ждем, надеюсь IS решит проблему.

Для интереса, сколько у вас классов?
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796026
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.А там ждем, надеюсь IS решит проблему.

Нет какой то особой проблемы ... есть с неясной структурой классов, запросов с исользованием .*, "некоректным" параметров классов типа System и желание разработчика менять базовые классы
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796257
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНет какой то особой проблемы ... есть с неясной структурой классов, запросов с исользованием .*, "некоректным" параметров классов типа System и желание разработчика менять базовые классы.


Я вас не понимаю:
что значит "неясной структуры классов"? Как структура может быть "неясной"?
Запросов со * у нас в системе нет. А если бы было, то что это меняло бы?
Что такое "некоректным" параметров классов типа System
Как связано желание разработчика менять базовые классы с устареванием класса?

Дело вот в чем:
Устаревание идет по времени последней компиляции.
Пусть есть иерархия использования A->B->C. Если скомпилировать класс С, то время его компиляции будет больше, чем у класса В и А, то есть они устарели. Класс В сам по себе бы и скомпилировался, то если мы будем компилировать класс А, выдастся сообщение о устаревании класса В. Но дело в том, что еще и существует цепочка использования A->C->B, и при компиляции класса B устареет класс С. То есть эти три класса А, В, С нельзя скомпилировать поотдельности. Возникается как бы блокировка устаревания.
Но в сложном проекте существуют гораздо большие цепочки. Вот в этом и проблема.
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796258
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В дополнение
Есть иерархия использования A->B->C. Но при этом есть еще использование класса B в классе С

Даже если мы скомпилируем класс класс А вместе с используемуми классами, они скомпилятся допустим в порядке C->B->A.
И после этого (так как класс С использует класс B), класс С становится устаревшим.
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796358
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. что значит "неясной структуры классов"? Как структура может быть "неясной"?

Слишком улсожненной вот и все - в данном примере говорится об одной ссылке - скорее всего дело решается флагами компиляции (те же релейшены практически всегда компилятся в два класса без всяких not to update)

Блок А.Н.Запросов со * у нас в системе нет. А если бы было, то что это меняло бы?

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

Блок А.Н.Что такое "некоректным" параметров классов типа System
Включи режим эксперта в студии и посмотри на классы уровня С.

Блок А.Н.Как связано желание разработчика менять базовые классы с устареванием класса?

Дело вот в чем:
Устаревание идет по времени последней компиляции.
Пусть есть иерархия использования A->B->C. Если скомпилировать класс С ...

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

И конечно же стоит посмотреть CompileAfter...

ЗЫ: У нас зависимая компиляция требуется редко - ровно когда возникаю not up to date, и практически полностью решает проблему, все остальное время все тупо компиляется с флагами "cd"
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796474
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСлишком улсожненной вот и все - в данном примере говорится об одной ссылке - скорее всего дело решается флагами компиляции (те же релейшены практически всегда компилятся в два класса без всяких not to update)

Систему мы получили переносом с каше 4.1. И работает она не первый год. Так что упростить ее не получится.
На самом деле я упростил ситуацию, реально почти 300 классов, которые довольно тесно друг друга используют. Но для заклинивания вроде достаточно трех.

Интересно, согласятся ли представители интерсистемс с утверждением, что каше не подходит для создания сложных систем?

авторВключи режим эксперта в студии и посмотри на классы уровня С.
Я не знаю, что такое режим эксперта в студии, но так как осуществлял переход с каше 4 на каше 5, то видел исходники практически всех классов и уж точно всех "центральных".
Классы A, B, С - прикладного уровня, не системные.

авторЖелание разработчика компилировать класс С нужно давить на корню
То есть как?А если он меняется?
Классы A, B,C - прикладного уровня, и стрелочка означает не наследование, а использование.
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796486
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Для интереса, сколько у вас классов?
примерно 50
Вы все правильно описали, мне кажется должно быть какое то простое решение этой проблемы, скорее всего нужно какие то настройки изменить, чтоб небыло такой реакции компилятора. Но к сожалению я пока не могу найти решения.
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796533
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.То есть как?А если он меняется?
Классы A, B,C - прикладного уровня, и стрелочка означает не наследование, а использование.

Вот что что, а с использованием уже давно не встречал проблем ....

Ymka2007

Воспроизводимый пример сделать можно ?
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796557
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, не понял вопроса.
...
Рейтинг: 0 / 0
как избавиться от выскакивающей ошибки?
    #34796827
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007Извиняюсь, не понял вопроса.

Сделать пример из двух классов с полями и некоторыми методами ... которые можно выложить сюда и при компиляции получить ту же проблему
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / как избавиться от выскакивающей ошибки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]