Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как почистить файл db [Paradox]


Романов Р.В. ©   (2003-01-30 08:34:00) 

При тестировании базы и добавлении в таблицу 10000 записей файл *.db увеличился до 1,7 Mb. После удаления всех записей размер файла не изменился. Какими средствами можно выкинуть из этого файла все удаленные записи.


chudaks   (2003-01-30 09:53:00) [1]

DbiPackTable


Соловьев   (2003-01-30 09:53:00) [2]

Ручками, своих функций у BDE нет.
Код приблизительно такой:

procedure PackPdoxTable(Table: TTable);
var
TableDesc:CRTTblDesc;
WasActive: Boolean;
hDataBase: hDbiDB;
begin
WasActive := Table.Active;
try
if not WasActive then Table.Open;
hDataBase := Table.DBhandle;

Table.Close;

FillChar(TableDesc, SizeOff(CRTblDesc),0);

with TableDesc do
begin
StrPCopy(SzTblName, Table.TableName);
StrPCopy(SzTblType, szParadox);
bPack := true;
end;

if hDataBase <> nil then
Check(DBIDoRestructure(hDatabase,1, @TableDesc, nil, nil, nil, False))
finally
if WasActive then Table.Open;
end;
end;


Романов Р.В.   (2003-01-30 09:39:00) [3]

Чем? Как?


Соловьев   (2003-01-30 09:32:00) [4]

упаковать


Наверх

Титульная страница Поиск, карта сайта Написать письмо