Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
6-1117384168
Новичек
2005-05-29 20:29
2005.09.18
Создание и обработка событий сокета.


14-1125004177
ronyn
2005-08-26 01:09
2005.09.18
Как защитить программу


9-1116772303
Cerberus
2005-05-22 18:31
2005.09.18
Помогите придумать алгоритм.


14-1124503939
OldNaum
2005-08-20 06:12
2005.09.18
Browsers Vs Clients


6-1117434978
silvestr
2005-05-30 10:36
2005.09.18
Как изменить программно основной шлюз и DNS в настройках





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский