Data Conversion - multy DLL

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
gopstop2007
Полимат
Сообщения: 1870
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 11 раз

Data Conversion - multy DLL

Сообщение gopstop2007 »

kreator писал(а): 18 Февраль 2026, 22:33 Ругается на conv_data.clw. Что в этом файле и что в самом шаблоне? Кстати, что этот шаблон конвертирует?
Следит за изменениями структуры файла данных и если есть изменения конвертирует данные.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5304
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 28 раз

Data Conversion - multy DLL

Сообщение kreator »

gopstop2007 писал(а): 20 Февраль 2026, 13:16 Следит за изменениями структуры файла данных и если есть изменения конвертирует данные.
Уже объяснили, спасибо. Что в шаблоне?
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 5304
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 28 раз

Data Conversion - multy DLL

Сообщение kreator »

finsoftrz писал(а): 19 Февраль 2026, 20:21 У меня таких ситуаций за 20+ лет не возникало, все полностью автоматически. Возможность выстраивать ручной код есть, но эта опция не используется.
Понятно. У Вас всё просто и под контролем. Но универсальный шаблон так делать нельзя. К примеру, если надо добавить поле/столбец и дать ему какое-то значение? Ещё интересней, если значение надо дать в зависимости от значений других полей записи.
По поводу истории вообще промолчу. Мне это непонятно. Одна итерация (вместо всех сделанных) сразу ведёт к потере данных. Простые операции (типа добавление "нулевого" поля) не в счёт.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5835
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Data Conversion - multy DLL

Сообщение finsoftrz »

Конвертор решает задачу актуализации структуры базы данных. Установить значение полей можно вставкой ручного кода. Этот код привязывается к номеру версии таблицы. Как я написал, на практике это не прижилось. Возможно, зависит от того, как проектируется база данных. У меня она максимально плоская.
Наверно, я не так понял, что такое итерация. Как уже написал, конвертор это одна процедура с множеством рутинок, вызываемых последовательно. Каждая из рутинок предназначена для конвертации версии одной таблицы в последующую версию. В разделе data мы имеем декларации всех версий всех таблиц, у которых имя и префикс дополняются номером версии. Каждой рутинке соответствует 2 структуры из деклараций, исходная и целевая. Вначале пытаемся открыть исходную таблицу, если открылась без ошибок, значит ее надо конвертировать в целевую таблицу. Если ошибка, то эта рутинка относится к предыдущей версии. Таким образом, конвертор пытается последовательно открывать таблицы в базе данных с самой первой декларации в истории. Как только срабатывает открытие без ошибки, мы нашли текущую версию на стороне клиента и дальше уже начинается последовательная конвертация на последующие версии. Иными словами, если в истории было два изменения структуры таблицы относительно структуры у клиента, то будут последовательно выполнены две рутинки, соответственно, две операции по конвертации.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5835
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Data Conversion - multy DLL

Сообщение finsoftrz »

Еще такой момент. Изредка бывает потребность что-то изменить именно в значениях полей в базе данных. У меня это отделено от актуализации структуры и называется "патч" базы данных.
Когда-то в конце 90-х пришлось поработать в филиале одного московского банка, который внедрял импортную банковскую систему, работающую на субд Oracle. Москвичи часто присылали скрипты на sql c инструкцией по их запуску и что должно выдаваться после выполнения. Они называли эти скрипты "патчами". Название вполне выразительное, позже я его позаимствовал. Разница была в том, что у них патчи могли включать и изменение структуры базы данных. С плоскими таблицами оказалось эффективно разделить это на две независимые части - чистая актуализация структуры базы данных, которая полностью автоматическая, и патчи, которые отвечают за изменение каких-то данных в базе. Патчи случаются крайне редко, а актуализация структуры базы данных это регулярно используемый инструмент.
C6/C12, ШВС, tps/btrieve.
Ответить