Цитата: И почему только грандовцы пишут все сметы в один файл, это так ненадёжно
Почему ненадежно? Для примера: MS Access, Interbase, MS SQL и многие другие программы хранят данные в одном файле.
Цитата: А ГС и репэйр видят только процентов 20 от всего содержимого и говорят что ошибок нет. Впрочем стоит удалить ГС-ой любую смету и ошибки тут же появляются.
Это говорит о том, что покорежена таблица расположения секторов в файле.
В нашей программе используется Microsoft реализация POIFS файла, то есть IStorage.
Собственно, сама система хранения достаточно надежна. На практике мы встречались только с четырьмя причинами когда происходит сбой структуры файла.
1. Выключение, перезагрузка или зависание компьютера в момент записи дискового кэша на жесткий диск. Данная проблема присутствует только на FAT32, и от нашей программы никак не зависит. При таком сбое портится любой файл.
2. Наличие на диске физических или логических ошибок. Опять таки, бывает только на FAT32. Причина в том, что некоторые люди редко проверяют диск, а часто вообще никогда этого не делают.
3. Попытка "разшарить" файл. Например, с помощью терминала или других фокусов.
Практически всегда при этом файл убивается наглухо.
4. Анекдотичный - удаление файла и последущее (через несколько дней работы) его восстановление. Тут комментировать нечего.
Так что мой совет - используйте XP (Win2000) с NTFS. Мне неизвестны случаи сбоев файла БД на NTFS (За исключением пунктов 3 и 4).