Big .dct

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Big .dct

Сообщение harry »

При ошибке в Stodecl.map только

Код: Выделить всё

Too many segdef in file:32,4000
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Big .dct

Сообщение finsoftrz »

Надо все таки смотреть, в какие clw что попадает. Определить, где декларации таблиц, где текст обслуживающих процедур. Потом попытаться удалить часть текста, пока сборка dll не пройдёт без ошибки. Потом, когда причина будет локализована, решать, как исправить ситуацию.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7374
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Big .dct

Сообщение Игорь Столяров »

harry писал(а): 03 Ноябрь 2022, 11:15 При ошибке в Stodecl.map только
Видимо всё-таки Clarion пытается сформировать MAP структуру в области памяти с размером 32K,
и если идёт превышение - то показывает козу ... :(
За теми кто отстал - не возвращаться. (С) Кодекс
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Big .dct

Сообщение harry »

finsoftrz писал(а): 03 Ноябрь 2022, 11:37 Надо все таки смотреть, в какие clw что попадает. Определить, где декларации таблиц, где текст обслуживающих процедур. Потом попытаться удалить часть текста, пока сборка dll не пройдёт без ошибки.
Декларация таблиц в одном файле Stodecl.clw, а обслуживающие процедуры и классы в остальных сгенерированных файлах.
Только как корректировать эти файлы, если при запуске компиляции Project/Make идет сначала перегенерация исходных файлов?

Еще помогло отключение шаблона ABCFree, который инклудил множество VSA_*.inc файлов. Т.е. такое впечатление, что идет переполнение по общему количеству линкуемых объектов.
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Big .dct

Сообщение harry »

Игорь Столяров писал(а): 03 Ноябрь 2022, 12:19 Видимо всё-таки Clarion пытается сформировать MAP структуру в области памяти с размером 32K,
и если идёт превышение - то показывает козу
Т.е. решение только в сокращении количества объектов ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7374
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Big .dct

Сообщение Игорь Столяров »

harry писал(а): 03 Ноябрь 2022, 12:31 Т.е. решение только в сокращении количества объектов ?
Видимо да. Я всегда был против левых шаблонов - они сильно закакивают проекты.
Ну и с нетерпением ждём-с обещанный Clarion 12 с генерацией x64 приложений ... :idied:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Big .dct

Сообщение finsoftrz »

Это так гадание на кофейной гуще. Если помогло отключение ABC Free, то, возможно, дело не в количестве деклараций в словаре. Тут кто-то писал про 1000 таблиц в словаре.
При сборке dll сырцы не всегда перегенерятся, только когда среда считает, что что-то изменилось. То есть можно изменять clw и собирать проект с этими изменениями. Я иногда так делаю, чтобы что-то быстро проверить.
Для сокращения количества деклараций в словаре можно делать составные таблицы. Например, операции с товарами, которые влияют на товародвижение. Упрощено, заголовки и строчные часть, 2 таблицы. Вместо отдельных таблиц на приходные накладные, отгрузочные накладные, перемещения, списания и т.п. Понятно, что паровоз ушел, сколько получилось таблиц, столько получилось.
У себя я придерживаюсь этого правила, поэтому в самом большом проекте таблиц в районе 300.

dct1.jpg

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

dct2.jpg

По ABC затрудняюсь сказать, не использую, скорее всего, там более наворочено.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7374
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Big .dct

Сообщение Игорь Столяров »

Я как-то уже говорил, что видел торговую систему, где вся БД - это тупо один SQL список.
Справочники и настройки, документы и их содержание, протоколы и реестры - всё в одном списке.
Так в своё время отца-основателя торкнуло на заре автоматизации всея Руси. :)
За теми кто отстал - не возвращаться. (С) Кодекс
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Big .dct

Сообщение harry »

finsoftrz, окно статистики это ваше собственное или шаблон какой то есть ? Что то не встречал в Clarion )
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Big .dct

Сообщение finsoftrz »

harry писал(а): 03 Ноябрь 2022, 13:41 finsoftrz, окно статистики это ваше собственное или шаблон какой то есть ? Что то не встречал в Clarion )
Это у меня такое приложение менеджер проектов для внутреннего пользования.
C6/C11, ШВС, tps/btrieve.
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Big .dct

Сообщение harry »

Еще помогло избавиться от ошибки включение опции "Generate file declarations in Modules"
Setup.JPG
Работает даже с инклудами ABCFree!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7374
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Big .dct

Сообщение Игорь Столяров »

harry писал(а): 08 Ноябрь 2022, 13:34 включение опции "Generate file declarations in Modules"
Ну тогда нужно объединять генерацию процедур в модули (Application -> Redistribute Procedures).
Иначе Ваш мега словарь будет генерится для каждой процедуры и Вы войдёте в историю как автор
самой крупной программы для Windows ... :idied:
За теми кто отстал - не возвращаться. (С) Кодекс
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Big .dct

Сообщение harry »

Application -> Redistribute Procedures выставлено 1
Не понял, почему словарь будет генериться для каждой процедуры. Ничего подобного не заметил.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7374
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Big .dct

Сообщение Игорь Столяров »

Я понял. Включение этой опции выносит генерацию описаний таблиц в отделный файл (модуль),
а не добавляет генерацию описаний таблиц в каждый модуль ... :dizzy:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Big .dct

Сообщение finsoftrz »

Игорь Столяров писал(а): 08 Ноябрь 2022, 15:05 Я понял. Включение этой опции выносит генерацию описаний таблиц в отделный файл (модуль),
а не добавляет генерацию описаний таблиц в каждый модуль ... :dizzy:
А без неё куда? В ШВС такой опции нет, декларации в отдельном файле.
C6/C11, ШВС, tps/btrieve.
Ответить