![]() |
Datenbanken packen
Hallo@all
Ich möchte gerne das meine Datenbank kleiner wird, wenn ich einen Eintrag lösche. Kann mir jemand erklären wie man das macht? Vielen Dank |
Re: Datenbanken packen
Hai SilverMoonGirl,
was für eine Datenbank hast Du denn? |
Re: Datenbanken packen
eine im Paradox Format
|
Re: Datenbanken packen
|
Re: Datenbanken packen
Hallo Silvermoongirl,
dafür gibt es in der BDE-API die Funktion DbiPackTable. Beispiel aus der OH:
Delphi-Quellcode:
// Pack a Paradox or dBASE table
// The table must be opened exclusively before calling this function... procedure PackTable(Table: TTable); var Props: CURProps; hDb: hDBIDb; TableDesc: CRTblDesc; begin // Make sure the table is open exclusively so we can get the db handle... 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'); // Get the table properties to determine table type... Check(DbiGetCursorProps(Table.Handle, Props)); // If the table is a Paradox table, you must call DbiDoRestructure... if Props.szTableType = szPARADOX then begin // Blank out the structure... FillChar(TableDesc, sizeof(TableDesc), 0); // Get the database handle from the table's cursor handle... Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb))); // Put the table name in the table descriptor... StrPCopy(TableDesc.szTblName, Table.TableName); // Put the table type in the table descriptor... StrPCopy(TableDesc.szTblType, Props.szTableType); // Set the Pack option in the table descriptor to TRUE... TableDesc.bPack := True; // Close the table so the restructure can complete... Table.Close; // Call DbiDoRestructure... Check(DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False)); end else // If the table is a dBASE table, simply call DbiPackTable... if (Props.szTableType = szDBASE) then Check(DbiPackTable(Table.DBHandle, Table.Handle, nil, szDBASE, True)) else // Pack only works on PAradox or dBASE; nothing else... raise EDatabaseError.Create('Table must be either of Paradox or dBASE ' + 'type to pack'); Table.Open; end; |
Re: Datenbanken packen
Super,
vielen Dank ihr zwei. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz