Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

При изменении информации, размер *.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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.047 c
4-1122322363
Aldaris
2005-07-26 00:12
2005.09.18
Речевой движок Digalo


6-1117455483
Flame
2005-05-30 16:18
2005.09.18
proxy


4-1122307063
dima_shapkin
2005-07-25 19:57
2005.09.18
CM_CANCELMODE


14-1123755009
Slider007
2005-08-11 14:10
2005.09.18
Как сделать из WinXP - Windows Vista


14-1124442813
MadAngel
2005-08-19 13:13
2005.09.18
А где?