DFD, CacheTPSABC - не понял

Clarion, Clarion 7

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

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

DFD, CacheTPSABC - не понял

Сообщение RaFaeL »

kreator писал(а): 23 Май 2019, 15:43К сожалению в tps нет поля varchar. .
CSTRING оно и есть
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

DFD, CacheTPSABC - не понял

Сообщение kreator »

gopstop2007 писал(а): 23 Май 2019, 18:35 а чем CSTRING плох?
RaFaeL писал(а): 23 Май 2019, 19:01 CSTRING оно и есть
CSTRING declares a character string terminated by a null character (ASCII zero). The memory assigned to the CSTRING is initialized to a zero length string unless the AUTO attribute is present.

CSTRING matches the string data type used in the "C" language and the "ZSTRING" data type of the Btrieve Record Manager. Storage and memory requirements are fixed-length, however the terminating null character is placed at the end of the data entered. CSTRING should be used to achieve compatibility with outside files or procedures.
Нет уверенности, что хранится будет строка переменной длины. Во-вторых, кто-нибудь пользует этот тип в tps? То, что при импорте скульных таблиц в словарь Кларион даёт строкам тип CSTRING, ничего не значит. И SV рекомендует использовать этот тип для совместимости с внешними файлами и процедурами:
CSTRING should be used to achieve compatibility with outside files or procedures.
И, в-третьих, не слишком удобный тип для работы. Есть отличия от обычного String, например, slicing-операции.
finsoftrz писал(а): 23 Май 2019, 17:52 Я думал, что кларионисты это все знают... В tps всегда записи переменной длины. Информация автоматически упаковывается.
Согласен, строки обрезаются. Похоже хранится так - обрезанная строка + количество пробелов до конца. Упаковки в общем случае нет. Это STRING. А вот CSTRING не режется, хранятся полностью.
We are hard at work… for you. :)
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

DFD, CacheTPSABC - не понял

Сообщение RaFaeL »

kreator писал(а): 24 Май 2019, 10:56Во-вторых, кто-нибудь пользует этот тип в tps?
Ну мы используем, у нас же одинаковая база для tps и для MS SQL, поэтому в SQL все в varchar а в tps все в cstring, причем переменные строковые внутри программы в основном тоже в cstring, чтоб клиповать поменьше. fixed-length это не хранение всей строки, это означает, что строка должна иметь заданный (максимальный) размер, а не быть переменной длины "сколько-то там до null"
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

DFD, CacheTPSABC - не понял

Сообщение finsoftrz »

kreator писал(а): 24 Май 2019, 10:56
finsoftrz писал(а): 23 Май 2019, 17:52 Я думал, что кларионисты это все знают... В tps всегда записи переменной длины. Информация автоматически упаковывается.
Согласен, строки обрезаются. Похоже хранится так - обрезанная строка + количество пробелов до конца. Упаковки в общем случае нет. Это STRING. А вот CSTRING не режется, хранятся полностью.
Откуда взяли то? STRING в tps упаковываются, а не просто обрезаются. Точно алгоритм не скажу, не интересовался. Типа кодирования и замены повторяющихся символов. Если действительно нужно, поищите в архивах переписки, обсуждалось когда-то.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

DFD, CacheTPSABC - не понял

Сообщение kreator »

finsoftrz писал(а): 24 Май 2019, 11:33 Откуда взяли то? STRING в tps упаковываются, а не просто обрезаются.
Просто взял и посмотрел.
tps.png
Для сведения - CSTRING:
tps2.png
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

DFD, CacheTPSABC - не понял

Сообщение finsoftrz »

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

DFD, CacheTPSABC - не понял

Сообщение finsoftrz »

Попробовал в C6, Encrypt не повлиял на размер. Но в не зашифрованном файле я не вижу названий. В C7 были изменения в tps для поддержки различных алгоритмов шифрации. Может, с этим связано.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

DFD, CacheTPSABC - не понял

Сообщение finsoftrz »

Еще, шифрованный файл мало жмется архиватором, а не шифрованный вполне хорошо жмется. Содержание и размер исходных файлов одинаковый. Это в C6.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

DFD, CacheTPSABC - не понял

Сообщение kreator »

С Encrypt'ом неинтересно. Что там увидишь? Есть у меня tps-файлы конца того века, начала этого. Всё также. Формат если и менялся, то совместимость осталась.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

DFD, CacheTPSABC - не понял

Сообщение finsoftrz »

Фик знает, какой там алгоритм. У меня почти все с Encrypt. Точно писали, что используется упаковка и числовых значений, и строковых. Но сейчас проверял, размер файлов с шифрацией и без практически одинаковый. На справочнике товаров ~30 мб.
Попробуйте еще с Encrypt свой пример с повторяющимися testtesttest, изменится ли размер файла. Если упаковка происходит, то такие повторения и должны сжиматься.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

DFD, CacheTPSABC - не понял

Сообщение finsoftrz »

Не пробуйте, проверил, одинаковый размер.
C6/C11, ШВС, tps/btrieve.
Ответить