Идентификация записи в списке

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Идентификация записи в списке

Сообщение RaFaeL »

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

Идентификация записи в списке

Сообщение finsoftrz »

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

Идентификация записи в списке

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

RaFaeL писал(а): 12 Декабрь 2019, 12:19Обновлять можно хоть предыдущий релиз, хоть 10-летней давности
Красиво ! Но сложно. К тому же у нас формат не только TPS, но MKD (Btrieve), причём очень разных релизов.
Я всё-таки за то, что бы не усложнять простое. И не к чему провоцировать пользователей лишний раз звонить
и настойчиво сомневаться в ориентации разработчика. ;) Вот и ищем, как бы выкрутиться-с. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Идентификация записи в списке

Сообщение finsoftrz »

Конвертация btrieve почти ничем не отличается от конвертации tps, только для многофайловых таблиц. Запуск одного exe еще красивее. И проще. ИМХО. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Идентификация записи в списке

Сообщение finsoftrz »

Точнее сказать, у меня для Btrieve формируется (дописывается по мере изменений в словаре) отдельный файлик версий. И отдельный exe конвертора по нему. Шаблоны те же самые, в параметрах выбирается tps или btrieve.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Идентификация записи в списке

Сообщение finsoftrz »

Вот так выглядит шаблон генерации файла версий, шаблон генерации процедуры конвертации и собственно файлик версий. Проще не бывает...
Вложения
conv1.jpg
conv2.jpg
conv3.jpg
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
porutchik
Активист
Сообщения: 150
Зарегистрирован: 01 Февраль 2009, 5:35

Идентификация записи в списке

Сообщение porutchik »

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

Идентификация записи в списке

Сообщение finsoftrz »

И на какие грабли, если не секрет?
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Идентификация записи в списке

Сообщение finsoftrz »

Long - это стандартный кларионовский тип данных для хранения даты и времени. Вопросы могут возникнуть только при использовании его в sql серверах. В dat/tps/btrieve все работает, как часы. Страшно сказать, сколько лет. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
porutchik
Активист
Сообщения: 150
Зарегистрирован: 01 Февраль 2009, 5:35

Идентификация записи в списке

Сообщение porutchik »

finsoftrz писал(а): 12 Декабрь 2019, 19:02И на какие грабли, если не секрет?
давно было DATA < LONG. Если склероз не изменяет то проблема была в Clear(MyData, 1)
FCN
Новичок
Сообщения: 5
Зарегистрирован: 15 Декабрь 2019, 16:46

Идентификация записи в списке

Сообщение FCN »

Новых колонок добавлять нельзя?
Ответить