Страница 1 из 3
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 14:50
finsoftrz
Сам певасив делает файлы продолжения на win32. Но есть подозрение, что кларион на уровне своего драйвера битрива имеет ограничение в 4гб. Так во всяком случае в документации прописано. А драйвер pervasiveSQL вроде требует установки odbc, как для других sql серверов. Может, кто проверял?
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 16:55
kreator
finsoftrz писал(а): 29 Ноябрь 2017, 14:50
А драйвер pervasiveSQL вроде требует установки odbc, как для других sql серверов.
"Как и других sql серверов" - неправильная фраза. Если в Кларионе есть прямые драйвера, ODBC не требуется. Pervasive из той же серии. Вообще у SQL-серверов нет проблемы с большими файлами, не важно 32 или 64-битная ось. Btrieve и его кларионовский драйвер - это другой случай, не скажу.
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 17:30
finsoftrz
Ну, судя по доке, для PervasiveSQL как раз требуется. Сам удивился. Не требуется, насколько знаю, только для oracle, а все остальные "прямые" - это специальные надстройки над odbc. В том числе ms sql и сибейз. Не уверен, но вроде так было...
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:09
Игорь Столяров
finsoftrz писал(а): 29 Ноябрь 2017, 14:50Может, кто проверял?
Размеры файлов MKD БД зависят от версии P.SQL (точнее теперь уже Actian Zen Database)
см. например нттп://
www.pervasive.com/database/Home/Product ... e12Compare
и
https://www.pervasive.com/Portals/55/do ... _Guide.pdf
(на странице 7 есть сравнительная табличка размера файла БД от его версии)
В Clarion нативный драйвер Btrieve и P.SQL, ODBC не требуется.
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:28
finsoftrz
Речь про ограничения со стороны клариона. Как я понимаю, работа через драйвер P.SQL ведется генерацией sql запросов. А через драйвер btrieve - это транзакционная модель (как tps).
Насчет odbc для P.SQL в доке на c10 есть такая фраза:
Pervasive SQL requires that the 16-bit ODBC support files are also installed.
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:34
Игорь Столяров
finsoftrz писал(а): 29 Ноябрь 2017, 18:28 А через драйвер btrieve - это транзакционная модель (как tps).
Да. Но запросы идут через Btrieve API. Т.е. драйвер Clarion напрямую с файлом MKD не работает (в отличии от TopSpeed формата).
А далее уже возможность Btrieve API определяются как версией MKD формата файла, так и версией P.SQL ... (см. PDF ниже)
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:35
finsoftrz
То есть мы можем работать с первасивом через транзакционную схему доступа только в пределах 4гб. А через реляционную (генерацию sql запросов в драйвере P.SQL) с тем размером базы, которая определяется используемым форматом на сервере первасива. Если так, то первасив совсем не вариант для обхода ограничения в 2ГБ для tps.
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:42
finsoftrz
Или не так...
The specifications below document Version 6.15. Your specific limits are dependent on what version of Btrieve you are using, and are not dependent on the Btrieve driver. Refer to your Btrieve documentation for your specific limitations.
То есть в доке ограничения на драйвер btrieve указаны на примере формата 6.15, а фактически надо смотреть по используемому формату первасива...
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:45
Игорь Столяров
Конечно же нет ! Основа БД Pervasive - это MKD файл.
Вы можете получить доступ к данным в нём как через транзакционную модель (Btrieve), так и через Pervasive.SQL.
Если у Вас P.SQL 12, то размер MKD файла версии формата 9.5 до 256 GByte, а если жлобский Btrieve 12 - то 4 GByte.
Спасибо, что пнули. Пошёл на сайт - а там P.SQL 13 оказывается вышел ... Всё есть. Сейчас буду ставить и тестить.

Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:45
finsoftrz
Я так всегда и думал, что-то засомневался. Это на fat32 создаются несколько файлов-продолжений, а на ntfs таблица в одном файле размещается...
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 18:56
Игорь Столяров
finsoftrz писал(а): 29 Ноябрь 2017, 18:45а на ntfs таблица в одном файле размещается...
Да. И версия Windows (x32/x64) значения не имеет. Но надо, учитывать что "размер файла" понятие скользкое.
Файл одинаковой структуры и теми же данными - в MKD будет значительно больше, чем в том же TPS.
К тому же P.SQL выделяет файловое пространство листами (page) и постоянно захватывает лишнии для оптимизации.
Но зато текстовые MEMO поля для файла FileName.mkd хранятся в отдельном файле (FileNameMEM.mkd) и в расчёт не входят.

Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 19:41
finsoftrz
Про увеличение размера я в курсе. То же самое и для sql серверов. Например, когда я перегрузил данные из tps в ms sql, то размер файла вырос примерно в 8 раз...
Первасив. Есть ли ограничение на размер файла?
Добавлено: 29 Ноябрь 2017, 20:04
Игорь Столяров
finsoftrz писал(а): 29 Ноябрь 2017, 19:41 то размер файла вырос примерно в 8 раз...
Гы ! Ну P.SQL не всё так плохо. К тому же, с помощью утилиты Rebuil можно дефрагментировать содержание MKD файла
и отжать пустые листы. И вроде бы, в PSQL v12 дефрагментация MKD должна выполняться службой в фоне .. Не проверял.

Первасив. Есть ли ограничение на размер файла?
Добавлено: 30 Ноябрь 2017, 10:31
finsoftrz
А не пробовали динамически подменять драйвер tps на первасив через prop:driver? Писали, что в C10 такое возможно, если прилинковать dfd драйвер. Было бы удобно, не надо пересобирать отдельно проект.
Первасив. Есть ли ограничение на размер файла?
Добавлено: 30 Ноябрь 2017, 10:43
Игорь Столяров
finsoftrz писал(а): 30 Ноябрь 2017, 10:31А не пробовали динамически подменять драйвер tps на первасив через prop:driver?
Пробовал и в С63 ... Но в сием действии, к сожалению, нет смысла ... Обозначу основные проблемы:
- По разному работают свойства, тот же File{Prop:Name} и т.д.;
- В P.SQL нет ключей / индексов по DECIMAL, а в TPS нет PDECIMAL (эти различия должны быть на уровне словаря);
- В P.SQL нет BLOB полей, и MEMO поля имеют ограничение по размеру, также отличается физическое хранение MEMO (см. ниже)
- P.SQL не всегда адекватно реагирует на нули в составных ключах с аттрибутом OPT, например если для TPS:
Код: Выделить всё
...
She:Date Long
...
Clear(Shet.Record)
Set(Shet.ByDate,Shet.ByDate)
Loop ...
то в PSQL лучше сразу делать так:
Код: Выделить всё
Clear(Shet.Record)
Shet.Date = 1
Set(Shet.ByDate,Shet.ByDate)
Loop ...
и всё-таки для PSQL (если планируется работать с БД через тот же ODBС) "родной" формат даты/времени DATE/TIME и т.д.
Но, если правильно организовать словари и код, то нет никакого напряга - подменил словарь, пересобрал. Твоя !
