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

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

Упаковка БД [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


Наверх

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