Очистил старый файл (несколько тысяч операций), а он легче не стал (под 2 мегабайта).
Почему?
Экспортируйте все операции в Excel и потом импортируйте в AbilityCash, после этого размер базы уменьшится
...из файла не удаляются, а лишь помечаются как удаленные.
Чтобы реально освободить пространство просто сохраните файл под новым названием. (Меню "Файл" / "Сохранить как...").
опцию "оптимизировать базу"? Практически во всех проектах подобная функция существует...
...если операции не удаляются из базы "на совсем", то для полного счастья надо сделать возможность восстановления удалённых операций.
добавить режим секьюрного удаления (wipe delete) операций, когда уже никак нельзя восстановить удаленные операции.
... предлагаю назначить сочетание Shift+Del
Думаю, многие поддержат.
Я провел эксперимент: сделал "Save As" для своей рабочей базы данных. Первоначальный объем 1,69 мегабайта (~8100 операций) превратился в 1,68 мегабайта. Экономия составила 10 килобайт. Ну, чтобы быть совсем точным, я посчитал на калькуляторе, 13 824 байт.
Результат, на самом деле, прогнозируем потому как неиспользуемые участки в файле появляются только при удалении операций. А существенные пустые области только при массовом удалении операций. В повседневной использовании базы данных мы, в основном, лишь добавляем и изменяем операции. Ну, по крайней мере я.
Самое интересное, что даже экономия места на носителе не может являться существенным стимулом для добавления пункта в меню "сжатие данных". Почему? По трем причинам:
1. Экономия одного или двух мегабайт (повторюсь, в случае массового удаления операций) будет существенной только если данные носить на дискете. Даже если кто-то и пользуется еще дискетами, то актуальность этого дела падает и падает. А для флешек... Я себе с трудом представляю базу данных AbilityCash размером в сотню мегабайт. Совсем не могу представить.
2. Сжатие данных может привести к лишним проблемам. Начнем с того, как именно его можно реализовать? Только записью нового файла потому как запись "по месту" чревата проблемами. А запись на новое место (с последующим удалением старой базы) будет означать, что при заполненности носителя на 100% программа просто не сможет уменьшить размер файла!
3. Ну и последнее. Не надо лишний раз перегружать программу разными финтифлюшечками. Получим "а теперь со всей этой фигней мы попытаемся взлететь".
В общем, мне кажется, что лучше уделить время каким-нибудь более серьезным вещам.
этой просьбе.
А так как существует эффект плацебо, то можно сделать кнопку "Оптимизация базы данных", которая не будет делать ничего, кроме появления окошка со статусбаром, который будет пробегать за 15-20 секунд. Уверяю, <B>многие</B> после этого будут замечать ускорение работу программы.
Зато в споре с конкурентами можно сказать, что у нас есть все основные возможности, и программа не уступает даже базам данных от Oracle.
Меня вполне удовлетворяет вариант Сохранить как...
Не каждый же день данные удаляются.