Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Максимальный размер файла IB. Во многих источниках видел, что [D7, IB6.x]


dimm22 ©   (2003-12-15 13:17:00) 

2-4Гб в зависимости от файловой системы. Причём в некоторых из них читал, что ограничение лежит именно со стороны ОС. Но как любитель компьютерного видеомонтажа согласиться с этим не могу. Под WinXP/2000 и файловой системой NTFS лежат у меня файлы размером значительно более. Ну например 68Гб. Так как в действительности обстоит дело? Вопрос скорее из любопытства, чем практический.


MV   (2003-12-17 13:35:00) [1]

Сейчас максимальный размер файла БД равен максимальному размеру фйала ОС. А где иначе? Для преодоления проблемы IB может размещать базу в нескольких файлах (определяется при инициализации). Никаких проблем.


dimm22   (2003-12-15 14:45:00) [2]


> Поясняю: Во-первых, на FAT32 фиг вы получите большой размер,
> вроде бы...

На FAT32, под управлением Win98,WinMe=2Гб
На FAT32, но под управлением Win2000,WinXp=4Гб


Кщд   (2003-12-15 14:02:00) [3]

Romkin © (15.12.03 13:36) [2]
проверено на Alt Linux - при попытке записи в БД, файл которой достиг критического размера (в данном случае 2Гб), данные не поступают в базу. Возникает внутренняя ошибка БД, которая устраняется gfix+gbak.


Romkin   (2003-12-15 13:36:00) [4]

Поясняю: Во-первых, на FAT32 фиг вы получите большой размер, вроде бы... А в программе для того, чтобы файл был более 2 ГБ, функции работы с файлом должны использовать для текущей позиции и тд. int64 (см GEtFileSize ReadFile etc, там используется два DWORD). В библиотеках чаще всего используется перекрытие этих функций, с использованием только одного DWORD. ДАлеко ходить не надо, у FileSeek, например, есть два варианта, с Offset: integer & Offset: int64. РАньше второго варианта не было ;)
А в IB6 и ниже int64, равно как и два integer не используется, отсюда и получается, что работать можно с файлом не более 2 Гб (4 Гб), в зависимости от того, знаковый или беззнаковый параметр в системной функции. Ограничения на размер БД это не накладывает, но увы, приводит к очень нежелательному эффекту: IB не замечает переполнения, и как только файл достигает предельного размера, а следующего файла не назначено, происходит свертка, и вместо записи в конец файла происходит запись в его начало, что приводит к гарантированной порче БД


Anatoly Podgoretsky   (2003-12-15 13:29:00) [5]

Известны базы размером в 980 гб


Наверх

Титульная страница Поиск, карта сайта Написать письмо