Data Conversion - multy DLL

Clarion, Clarion 7

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

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

Data Conversion - multy DLL

Сообщение gopstop2007 »

Привет всем, вопрос к тем кто пользуется шаблонами Data conversion
Пробую подсоединить к проекту как DLL (как multy DLL),получаю ошибки
Missing procedure definition: CONV_DATA:INIT(<ERRORCLASS>,<INICLASS>) - D:\MyProject\conv_data.clw:1210
Missing procedure definition: CONV_DATA:KILL - D:\MyProject\conv_data.clw:1210
Missing procedure definition: DESTRUCT(DLLINITIALIZER) - D:\MyProject\conv_data.clw:1210
Давно не пользовался шаблоном и буду рад за подсказку.
Спасибо за внимание и помощь!
C10, ABC
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
SergioRaguzini
Старожил
Сообщения: 274
Зарегистрирован: 08 Декабрь 2009, 19:16
Откуда: Краснодарский край
Благодарил (а): 25 раз
Поблагодарили: 1 раз

Data Conversion - multy DLL

Сообщение SergioRaguzini »

Добрый день!
вроде версии Data Conversion Template, для С6.3 и более новых отличаются, тут все правильно?
gopstop2007
Полимат
Сообщения: 1869
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 11 раз

Data Conversion - multy DLL

Сообщение gopstop2007 »

SergioRaguzini писал(а): 17 Февраль 2026, 11:57 Добрый день!
вроде версии Data Conversion Template, для С6.3 и более новых отличаются, тут все правильно?
Обычный app.exe собирается без ошибок, подключил к проекту как внешний exe, хотелось бы как dll прикрутить. )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5302
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 28 раз

Data Conversion - multy DLL

Сообщение kreator »

Я, так понимаю, помощи ждать неоткуда. Вы в какую dll шаблон добавляете? Там, где описания таблиц и ABC-классов? Есть т.н. глобальный шаблон? Ну и посмотрите как шаблон генерит описание классов? Есть там что-нибудь про "dll", "ABCDllMode"? Если что, я этот шаблон не пользую.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5833
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Data Conversion - multy DLL

Сообщение finsoftrz »

А DC вообще знает про ABC? Это Синявский делал еще в конце 90-х, если не ошибаюсь.
C6/C12, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5302
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 28 раз

Data Conversion - multy DLL

Сообщение kreator »

finsoftrz писал(а): 17 Февраль 2026, 19:15 А DC вообще знает про ABC? Это Синявский делал еще в конце 90-х, если не ошибаюсь.
Возможно. Но процедуры называются CONV_DATA:INIT, CONV_DATA:KILL. Синявский так прикалывался?
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1869
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 11 раз

Data Conversion - multy DLL

Сообщение gopstop2007 »

kreator писал(а): 18 Февраль 2026, 1:39
finsoftrz писал(а): 17 Февраль 2026, 19:15 А DC вообще знает про ABC? Это Синявский делал еще в конце 90-х, если не ошибаюсь.
Возможно. Но процедуры называются CONV_DATA:INIT, CONV_DATA:KILL. Синявский так прикалывался?
Это не Синявский, у меня файл conv_data.exe :idied:
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
Полимат
Сообщения: 1869
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 11 раз

Data Conversion - multy DLL

Сообщение gopstop2007 »

finsoftrz писал(а): 17 Февраль 2026, 19:15 А DC вообще знает про ABC? Это Синявский делал еще в конце 90-х, если не ошибаюсь.
У меня в С10 ABC работает, для моего проекта получилось только как внешний exe прикрутить.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
Полимат
Сообщения: 1869
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 33 раза
Поблагодарили: 11 раз

Data Conversion - multy DLL

Сообщение gopstop2007 »

kreator писал(а): 17 Февраль 2026, 18:58 Я, так понимаю, помощи ждать неоткуда. Вы в какую dll шаблон добавляете? Там, где описания таблиц и ABC-классов? Есть т.н. глобальный шаблон? Ну и посмотрите как шаблон генерит описание классов? Есть там что-нибудь про "dll", "ABCDllMode"? Если что, я этот шаблон не пользую.
В myprogram.exe при помощи шаблона Data Converter, как External Mode который запускает - conv_data.exe
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5302
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 28 раз

Data Conversion - multy DLL

Сообщение kreator »

Ругается на conv_data.clw. Что в этом файле и что в самом шаблоне? Кстати, что этот шаблон конвертирует?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5833
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Data Conversion - multy DLL

Сообщение finsoftrz »

Эти шаблоны используются для управления версиями словаря. Соответственно, конвертируют таблицы со старой структурой в таблицы с новой структурой. Плюс встраивают в приложение визуальное отображение истории изменений структуры базы данных. Поддерживают базы данных dat, tps и ms sql. Из того, что помню.
Я использую много лет свой похожий инструмент, но более простой, который автоматически создаёт отдельное приложение, актуализирующее структуру базы данных у клиентов со старых версий (tps и btrieve).
Это позволяет легко изменять структуру базы данных в словаре по мере развития проекта.
C6/C12, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5302
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 28 раз

Data Conversion - multy DLL

Сообщение kreator »

Интересная тема. Всегда конвертация представляет некую проблему. Но наверно не без изъянов. Особенно в SQL. Не скажу по MS, но в Firebird в последних версиях запретили некие изменения в полях БД. Т.е., если мы хотим увеличить, например, строковое поле, но создаём новое, переписываем данные из старого в новое, удаляем старое, переименовываем новое и переставляем новое на позицию старого. На стороне клиента это, естественно, через скрипт. Если говорить об универсальности решения, то я ещё понимаю пошаговую конвертацию. А вот, если изменений была куча, то могут возникнуть какие-то сложности.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5833
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Data Conversion - multy DLL

Сообщение finsoftrz »

Про sql не знаю, это надо в DC смотреть. Вадим писал, что там много нюансов отрабатывается, сложнее, чем в isam. У меня только tps и btrieve, генерится на каждую версию таблицы отдельная рутинка, которая переливает данные из таблицы предыдущей версии во временную с новой структурой, а затем замещает физический файл. Обрабатывается автоматически с той версии, которая у клиента (программа смогла открыть ее без ошибки), до актуальной, включая все промежуточные. Есть только оговорка, что последующие версии не должны повторять структуру предыдущих. На стороне разработчика вначале запускается утилитный шаблон, который определяет наличие изменений в словаре и помещает описание таблицы в текстовый файл версий. Затем компилируется небольшое приложение с одной процедурой (процедурный шаблон), которая на основании файла версий автоматически создает код конвертации.
C6/C12, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5302
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 12 раз
Поблагодарили: 28 раз

Data Conversion - multy DLL

Сообщение kreator »

finsoftrz писал(а): 19 Февраль 2026, 16:16 Затем компилируется небольшое приложение с одной процедурой (процедурный шаблон), которая на основании файла версий автоматически создает код конвертации.
По моим представлениям можно сделать автоматическую конвертацию при несложных изменениях в словаре. Допустим, при изменении размера строкового поля. Или при добавлении поля/столбца. Но во многих случаях нужно править код конвертации вручную. А если каждый раз такое? Поэтому, чтобы привести версию клиента к текущей, надо сделать несколько итераций.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5833
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Data Conversion - multy DLL

Сообщение finsoftrz »

У меня таких ситуаций за 20+ лет не возникало, все полностью автоматически. Возможность выстраивать ручной код есть, но эта опция не используется. Итерация на стороне клиента одна, просто запускается маленький exe. Точнее, может быть более одного exe, если очень давно не обновлялся. Периодически (раз в 2-3 года) файл версий и собранный на его основе exe переименовываются, цикл начинается заново.
C6/C12, ШВС, tps/btrieve.
Ответить