![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Максимальный размер файла 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 гб