Btrieve и clarion

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Btrieve и clarion

Сообщение Developer »

Игорь Столяров писал(а): 16 Июнь 2019, 23:43Как скажете … В C11 почему-то используется историческое название этой БД …
Так и думал :mrgreen:

С чего это разные названия - хотя при попытке регистрации присутствуют и старые :|
С Уважением, Developer
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Btrieve и clarion

Сообщение finsoftrz »

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

Btrieve и clarion

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

Вот всем хорош Btrieve, особенно в контексте использования c Clarion.
Но даёт о себе знать его ископаемое нутро ...

Ограничение на суммарную длину полей в ключах 256 байт неприемлемо в 2019 г.
Пара-тройка полей с GUID и всё, наименование уже не помещается. :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Btrieve и clarion

Сообщение finsoftrz »

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

Btrieve и clarion

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

finsoftrz писал(а): 26 Сентябрь 2019, 8:43Или для наименований в справочниках только первые 10-20 символов.
Понятно, что как-то выкрутиться всегда можно, что в общем-то и делается.
Но осадок и чувство глубокого неудовлетворения происходящим - остаётся.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Btrieve и clarion

Сообщение finsoftrz »

Не знаю, у меня, наоборот, чувство удивления вызывают ключи с сотнями символов. В sql давно всякие разные схемы построения ключей используются. У нас тоже самое надо делать, только самостоятельно. Но и кпд при работе выше.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Btrieve и clarion

Сообщение morkovin »

finsoftrz писал(а): 26 Сентябрь 2019, 9:06ключи с сотнями символов
А если ключ по полю CSTRING, и поле объявлено с запасом по длине? В своё время я отказался от Btrieve именно из-за ограничений по длине ключа, т.к. терялась совместимость dictionary с другими драйверами.
WBR, morkovin
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Btrieve и clarion

Сообщение finsoftrz »

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

Btrieve и clarion

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

finsoftrz писал(а): 26 Сентябрь 2019, 9:06чувство удивления вызывают ключи с сотнями символов
Понимаете, построение ключей - это же не самоцель. Структура БД (в т.ч. ключи) описывает некую существующую реальность.
Например в том же Меркурии не заморачиваются сильно и почти все символьные наименования по 255 символов.
А чего думать-то ? Любить - так королеву. Можно конечно это всё подрезать исходя из здравой логики и технологических ограничений.
И потом молится, что бы это где-то не вылезло. У меня уже вылезло, когда один дебил (другого слова нет) указал наименование
своих хинкали в 212 символов … :(
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Btrieve и clarion

Сообщение morkovin »

finsoftrz писал(а): 26 Сентябрь 2019, 9:21для чего этот ключ нужен
На собственном опыте:
Было поле CSTRING(120) и по нему ключ. Через год попросили увеличить да 250. Ещё через пару лет до 512 и т.д.
Вот типичное наименование дисциплины "МДК 01.03 Сестринское дело в системе первичной медико-санитарной помощи населению".
А вот краткое наименование "МДК01.03 СД в СПМСПН". Что здесь можно понять?
WBR, morkovin
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Btrieve и clarion

Сообщение finsoftrz »

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

Btrieve и clarion

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

finsoftrz писал(а): 26 Сентябрь 2019, 9:4940 первых символов из наименования товара для упорядочивания в отчетах
В отчётах - прокатит. Но если открывать список товаров для выбора (в режиме SelectRecord), то засветка установится на неправильную запись (при совпадении первых 40 символов в наименовании разных товаров).
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Btrieve и clarion

Сообщение kreator »

А как вы решаете проблему уникальности полей при таких напрягах?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Btrieve и clarion

Сообщение finsoftrz »

Игорь Столяров писал(а): 26 Сентябрь 2019, 9:52
finsoftrz писал(а): 26 Сентябрь 2019, 9:4940 первых символов из наименования товара для упорядочивания в отчетах
В отчётах - прокатит. Но если открывать список товаров для выбора (в режиме SelectRecord), то засветка установится на неправильную запись (при совпадении первых 40 символов в наименовании разных товаров).
Для этого и добавляется в ключ второе поле идентификатора записи.
Я хочу сказать, что содержимое в ключе используется только для поиска записей. А не отображения информации. Никто нам не мешает создавать дополнительные поля, предназначенные исключительно для организации эффективного поиска.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Btrieve и clarion

Сообщение finsoftrz »

kreator писал(а): 26 Сентябрь 2019, 10:06А как вы решаете проблему уникальности полей при таких напрягах?
Напряги только в головах...
C6/C11, ШВС, tps/btrieve.
Ответить