Макс. размер DAT-файла Clarion 2.1

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
shako
Новичок
Сообщения: 8
Зарегистрирован: 30 Сентябрь 2010, 9:10

Макс. размер DAT-файла Clarion 2.1

Сообщение shako »

В продолжении темы про мой проблемный файл. Столкнулась с такой проблемой, что как только размеры DAT-файла Clarion 2.1 превысили 2 гига Кларион6 перестал корректно с ним работать - не находил записи по ключу. Пришлось писать ДОС-овую вставку, чтобы найти нужные записи и перегнать их во временный файл, который уже нормально читается в Кларионе6. В описаниях написано, что DAT-файл Clarion 2.1 может быть до 4Гб, а на деле не тянет 6-й кларион больше 2 Гб. Или может я не теми средствами и не теми командами пользуюсь. Использую обычные команды GET(). В ДОС-овом то же самое работает нормально.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7378
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Макс. размер DAT-файла Clarion 2.1

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

shako писал(а):В описаниях написано, что DAT-файл Clarion 2.1 может быть до 4Гб
В каком описании это написано ?!
Если Вы о фразе "Records per File : 4,294,967,295" - то она переводится как "Кол-во записей в файле : 4,294,967,295".
А вот "File Size: limited only by disk space" - т.е. "Размер файла: ограничен только свободным местом на диске".
Здесь и надо копать ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Макс. размер DAT-файла Clarion 2.1

Сообщение Admin »

Игорь Столяров писал(а):
shako писал(а):В описаниях написано, что DAT-файл Clarion 2.1 может быть до 4Гб
В каком описании это написано ?!
Если Вы о фразе "Records per File : 4,294,967,295" - то она переводится как "Кол-во записей в файле : 4,294,967,295".
А вот "File Size: limited only by disk space" - т.е. "Размер файла: ограничен только свободным местом на диске".
Здесь и надо копать ... :)
Так как описан первый случай, могу предположить все таки падение ключей...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
WadimZapara
Активист
Сообщения: 181
Зарегистрирован: 11 Июнь 2008, 12:11
Откуда: Тамбов

Re: Макс. размер DAT-файла Clarion 2.1

Сообщение WadimZapara »

Полностью согласен с Admin-ом.
Примените командный файл для перестройки ключей, типа такого, что показан ниже, и запланируйте его запуск в удобное для организации время.

Код: Выделить всё

net share Маршрут_Сетевого_Ресурса /delete /yes
csrt.exe filename1 /v
...
csrt.exe filenameN /v
net share Имя_Ресурса=Маршрут_Сетевого_Ресурса /unlimited /remark:"Комментарий для сетевого ресурса"
При этом, чем сложнее (длиннее) ключ, и чем больше разнотипных полей входят в его состав - тем выше вероятность падения такого ключа.
На файлах со сложными ключами это начинается ещё при размерах всего в 20 Мб.
А уж ежели патологические размеры, как у Вас, думаю - это неизбежно.
Компьютер имеет то преимущество перед мозгом, что им пользуются...
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Re: Макс. размер DAT-файла Clarion 2.1

Сообщение lsgsoftware »

Ну уж следует признать,что формат DAT это анахронизм.Если уж в этом
файле содержится ценная информация,то нужно просто перегнать его
в более современный формат в режиме последовательного чтения
типа SET-NEXT(без всяких там ключей).Это либо TPS(но там размеры файла имеют ограничения),
либо,к примеру, в в MYSQL.Делал это неоднократно и работа то копеечная.Но это по зубам
конечно профи-кларионисту.Да,наша любимая клаша это удел профессиналов и нужно этому
учиться многие годы.
shako
Новичок
Сообщения: 8
Зарегистрирован: 30 Сентябрь 2010, 9:10

Re: Макс. размер DAT-файла Clarion 2.1

Сообщение shako »

Ключи перестроить - это первым делом делаем всегда. Проблема в том, что после перестройки ключей все-равно виндузовый Кларион ничего не находит. А Досовый всё видит и отрабатывает нормально. И там и там все делаю одинаково. А перегонять в более современный формат не целесообразно - много времени займет и пустое это занятие. Работать приходится с готовыми DAT-файлами Clarion2.1, которые постоянно обновляются и дополняются. Я всего лишь пишу вспомогательные программы для облегчения жизни пользователям, которые вынуждены пользоваться официальной готовой программой. Тот МОНСТР много чего выполняет, но всегда есть куча задач, которые надо выполнить, а они не реализованы.
Кто-нибудь реально работал с DAT-файлами Clarion2.1 большого объема более 2 гигов в Clarion6?
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

Re: Макс. размер DAT-файла Clarion 2.1

Сообщение Igor »

Проблема в том, что после перестройки ключей все-равно виндузовый Кларион ничего не находит
Так как Clarion Версия проги не указана.
Если прога написана на Clarion2.1(DOS) то поищите на диске OPTIONS.CTL и удалите их все. Затем перестройте ключи в Виндовой Кларе и попробуте поиск в DOSе.
shako
Новичок
Сообщения: 8
Зарегистрирован: 30 Сентябрь 2010, 9:10

Re: Макс. размер DAT-файла Clarion 2.1

Сообщение shako »

Igor - вы всё поняли наоборот :)

Имеется файл TMP.DAT - Clarion2.1 размер превышает 2 Гб

пишу в программе Clarion6.2
Get(TMP,TKey) - не находит запись

в Досовом Clarion2.1 та же самая инициализация ключевых полей
Get(TMP,TKey) - о чудо! находит запись
Аватара пользователя
WadimZapara
Активист
Сообщения: 181
Зарегистрирован: 11 Июнь 2008, 12:11
Откуда: Тамбов

Re: Макс. размер DAT-файла Clarion 2.1

Сообщение WadimZapara »

А не зависит ли это от атрибута файла OEM ?
думаю, файл создан в DOS-кларе,
а читается в Win-кларе с атрибутом OEM.
Вот ту-то и есть бяка.
Попробуй варианты:
1) убрать атрибут OEM, например во время исполнения: File{PROP:OEM}=FALSE
2) создать такой же файл в Win-кларе и переписать в него в Win-проге, считывая пошагово

Код: Выделить всё

  Set(DosFile)
  Loop
     Next(DosFile)
     IF ErrorCode() Then Break.
     WF:Record = DF:Record
     ADD(WinFile)
  End
правда, боюсь, с новым файлом (WinFile) может проявиться обратный эффект - в Win-проге ОК, в DOS-проге - проблемы...
Компьютер имеет то преимущество перед мозгом, что им пользуются...
Ответить