Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
Delphi 3 Standard
|
Re: Wie komprimiere ich eine Datenbank "Paradox" &
21. Aug 2003, 19:17
Hallo Frank2269,
diese Funktion sollte Dir weiterhelfen. Der Ursprungscode stammt von Andreas Kosch aus dem Buch Delphi 3 Datenbankentwicklung (ISBN 3-7723-4033-4)
Delphi-Quellcode:
function PackTable( var Table: TTable): Boolean;
var
aCURProps: CURProps;
aCRTblDesc: CRTblDesc;
aHDBIDB: HDBIDB;
OldExclusive: Boolean;
begin
Result := False;
with Table do
begin
OldExclusive := Exclusive;
Close;
Exclusive := True;
Open;
Check(DbiGetCursorProps( Handle, aCURProps));
case aCURProps.iSeqNums of
// dBASE
0: begin
Check(DbiPackTable(DBHandle, Handle, nil, nil, True));
Result := True;
end;
// Paradox
1: begin
Close;
FillChar(aCRTblDesc, SizeOf(aCRTblDesc), #0);
with aCRTblDesc do
begin
StrPCopy(szTblName, Table.TableName);
bPack := True;
iFldCount := 0;
end;
Check(DbiOpenDatabase( nil, nil, DbiREADWRITE, DbiOpenShared, nil,
0, nil, nil, aHDBIDB));
Check(DbiSetDirectory(aHDBIDB, PChar(Session.NetFileDir)));
Check(DbiDoRestructure(aHDBIDB, 1, @aCRTblDesc, nil, nil, nil, False));
Result := True;
end;
else
begin
end;
end;
Close
Exclusive := OldExclusive;
Open;
end;
end;
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
|
|
Zitat
|