![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Упаковка БД [D6, Paradox, ]
Dinara © (2002-01-25 11:49:00)Когда стираешь записи методом Delete, размер базы остается прежним. Как упакватьбазу, чтобы новые записи "задвинули" старые?
Anatoly Podgoretsky (2002-01-29 22:28:00) [1]fnatali © (25.01.02 11:50)
Ты посмотрел хелп по этой функции
Dinara (2002-01-29 17:31:00) [2]Решение найдено.
procedure PackTable(Table: TTable);
var
Props: CURProps;
hDb: hDBIDb;
TableDesc: CRTblDesc;
begin
Table.Exclusive := True;
Table.Active := True;
if not Table.Active then
raise EDatabaseError.Create("Table must be opened to pack");
if not Table.Exclusive then
raise EDatabaseError.Create("Table must be opened exclusively to pack");
Check(DbiGetCursorProps(Table.Handle, Props));
if Props.szTableType = szPARADOX then begin
FillChar(TableDesc, sizeof(TableDesc), 0);
Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
StrPCopy(TableDesc.szTblName, Table.TableName);
StrPCopy(TableDesc.szTblType, Props.szTableType);
TableDesc.bPack := True;
Table.Close;
Check(DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False));
end;
end;
fnatali (2002-01-25 11:50:00) [3]dbiPackTable