Страница 4 из 4

DFD, CacheTPSABC - не понял

Добавлено: 23 Май 2019, 19:01
RaFaeL
kreator писал(а): 23 Май 2019, 15:43К сожалению в tps нет поля varchar. .
CSTRING оно и есть

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 10:56
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 не режется, хранятся полностью.

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 11:22
RaFaeL
kreator писал(а): 24 Май 2019, 10:56Во-вторых, кто-нибудь пользует этот тип в tps?
Ну мы используем, у нас же одинаковая база для tps и для MS SQL, поэтому в SQL все в varchar а в tps все в cstring, причем переменные строковые внутри программы в основном тоже в cstring, чтоб клиповать поменьше. fixed-length это не хранение всей строки, это означает, что строка должна иметь заданный (максимальный) размер, а не быть переменной длины "сколько-то там до null"

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 11:33
finsoftrz
kreator писал(а): 24 Май 2019, 10:56
finsoftrz писал(а): 23 Май 2019, 17:52 Я думал, что кларионисты это все знают... В tps всегда записи переменной длины. Информация автоматически упаковывается.
Согласен, строки обрезаются. Похоже хранится так - обрезанная строка + количество пробелов до конца. Упаковки в общем случае нет. Это STRING. А вот CSTRING не режется, хранятся полностью.
Откуда взяли то? STRING в tps упаковываются, а не просто обрезаются. Точно алгоритм не скажу, не интересовался. Типа кодирования и замены повторяющихся символов. Если действительно нужно, поищите в архивах переписки, обсуждалось когда-то.

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 13:35
kreator
finsoftrz писал(а): 24 Май 2019, 11:33 Откуда взяли то? STRING в tps упаковываются, а не просто обрезаются.
Просто взял и посмотрел.
tps.png
Для сведения - CSTRING:
tps2.png

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 13:48
finsoftrz
Поставьте Encrypt Data Rows в декларации таблицы.

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 14:35
finsoftrz
Попробовал в C6, Encrypt не повлиял на размер. Но в не зашифрованном файле я не вижу названий. В C7 были изменения в tps для поддержки различных алгоритмов шифрации. Может, с этим связано.

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 15:02
finsoftrz
Еще, шифрованный файл мало жмется архиватором, а не шифрованный вполне хорошо жмется. Содержание и размер исходных файлов одинаковый. Это в C6.

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 15:41
kreator
С Encrypt'ом неинтересно. Что там увидишь? Есть у меня tps-файлы конца того века, начала этого. Всё также. Формат если и менялся, то совместимость осталась.

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 17:07
finsoftrz
Фик знает, какой там алгоритм. У меня почти все с Encrypt. Точно писали, что используется упаковка и числовых значений, и строковых. Но сейчас проверял, размер файлов с шифрацией и без практически одинаковый. На справочнике товаров ~30 мб.
Попробуйте еще с Encrypt свой пример с повторяющимися testtesttest, изменится ли размер файла. Если упаковка происходит, то такие повторения и должны сжиматься.

DFD, CacheTPSABC - не понял

Добавлено: 24 Май 2019, 17:12
finsoftrz
Не пробуйте, проверил, одинаковый размер.