![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как почистить файл 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]упаковать