Форум: "Базы";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
Вниз
При изменении информации, размер *.mb файла не уменьшается! Найти похожие ветки
← →
Zaero (2005-08-08 11:25) [0]Господа программисты, у меня следующая проблема:
Пишу программу, использующую базу данных - таблицы PARADOX (*.db). В одной из таблиц я создал поля BLOB MEMO и BLOB GRAPH. Поля BLOB используются для хранения больших объемов двоичной информации - при создании их требуется ввести количество символов хранящихся в основной таблице (*.db), остальные символы сохраняются в отдельный файл (*.mb). Так вот, господа, проблема в следующем: если в процессе работы программы внести информацию в поле BLOB (с помощью компонентов DBMemo или, DBImage), *.mb файл послушно увеличивается на объем внесенной информации. Если же я после этого внесенную информацию удаляю (присваиваю "" через DBMemo), происходит такая неприятная вещь: место, занимаемое удаленной информацией объявляется свободным внутри *.mb файла, однако сам файл в размере не уменьшается!
Например сначала я присваиваю полю BLOB MEMO 100К текста, - *.mb файл увеличится на 100К (допустим, в основной таблице сохраняется 0 символов). Затем я вместо этих 100К присваиваю "". Место объявляется свободным, но размер *.mb файла остается увеличенным на 100К. Если в последующем присваивать BLOB полям информацию, размер *.mb файла не будет увеличиваться, пока не будут заполнены освободившиеся 100К.
Подскажите пожалуйста, как сделать так, чтобы объем *.mb файла не только динамически увеличивался, но и динамически уменьшался при изменении информации!
← →
Anatoly Podgoretsky © (2005-08-08 11:30) [1]dbiDoRestructure
← →
Zaero (2005-08-08 12:09) [2]2 Anatoly Podgoretsky: А можно поподробнее? Эту процедура? К какому компоненту ее применять? И какой модуль должен быть подключен?
← →
Anatoly Podgoretsky © (2005-08-08 12:15) [3]Модуль БДЕ, в справке есть пример использования. Применяется естественно к таблице.
← →
Zaero (2005-08-08 12:31) [4]Table1.dbiDoRestructure - такой процедуры нет. В справке такая процедура тоже не находится. Напиши пожалуйста синтаксис.
← →
Anatoly Podgoretsky © (2005-08-08 12:33) [5]Очень невезливо по отношению к другим участникам конференции, копировать статью из стандартной справки. Если у тебя ее нет, то переинсталируй Дельфи, только на этот раз ставиь полностью.
← →
sniknik © (2005-08-08 12:34) [6]> В справке такая процедура тоже не находится.
сдесь найдется
"x:\Program Files\Common Files\Borland Shared\BDE\BDE32.HLP"
← →
Anatoly Podgoretsky © (2005-08-08 12:39) [7]sniknik © (08.08.05 12:34) [6]
Но он же написал, что справки у него нет!
← →
sniknik © (2005-08-08 12:45) [8]Anatoly Podgoretsky © (08.08.05 12:39) [7]
она в D7 просто не включена в обший хелп дельфей (по F1 из IDE не находится). надо руками подключать (в настройке справки), или прямо файл открывать.
(F1 ткнул и тишина... вестимо нету ;о)), а как оно туда попадает не в курсе просто)
← →
Виталий Панасенко (2005-08-08 12:52) [9]DbiPackTable, кажись...
← →
Виталий Панасенко (2005-08-08 12:54) [10]Не, соврал, кажись..Это (упаковка) параметр в реструктуризацию
← →
Zaero (2005-08-08 12:57) [11]2Sniknik: О, спасибо! Справка нашлась.
← →
Anatoly Podgoretsky © (2005-08-08 13:09) [12]sniknik © (08.08.05 12:45) [8]
А зачем по F1, в системе много справок, в том числе и в Дельфи, надо или двойным щелчком или лучше создать папку и тудя ярлыки на нужные справки.
← →
Anatoly Podgoretsky © (2005-08-08 13:11) [13]Виталий Панасенко (08.08.05 12:52) [9]
Парадокс не поддерживает упаковку, это дБейс имеет такую возможность, Парадокс только через пересоздание таблицы (реструктиризация).
Вот только я бы не стал подобное делать, это сильный провал в производительности. Это имеет смысл в очень редких случаях, место повторно используемое.
← →
Виталий Панасенко (2005-08-08 17:51) [14]
> Anatoly Podgoretsky © (08.08.05 13:11) [13]
> Виталий Панасенко (08.08.05 12:52) [9]
> Парадокс не поддерживает упаковку, это дБейс имеет такую
> возможность, Парадокс только через пересоздание таблицы
> (реструктиризация).
> Вот только я бы не стал подобное делать, это сильный провал
> в производительности. Это имеет смысл в очень редких случаях,
> место повторно используемое.
Согласен... Только я люблю Paradox, как вы его ненавидите..И наоброт (относительно dBase :-)) ).. Просто я начал с Turbo Pascal/BP 7.0 и библиотеки Paradox Engine...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c