// Wenn man Sätze in dBase-Datenbanken löscht, sind sie weiterhin physisch
// vorhanden, bis man die Datenbank packt (siehe
dBase Datenbanken packen).
// Ob es sich lohnt eine Datenbank zu packen, kann man entscheiden,
// nachdem man mit dem folgenden Code die gelöschten Sätze gezählt hat.


// Getestet mit D4 unter XP

uses Db, DBTabels, BDE;
function geloeschte(dts: TDBDataSet): integer; 
begin 
  if not dts.active then 
    raise exception.create('Datenbank ist nicht aktiv'); 
  Check(dbiGetRecordCount(dts.Handle, result)); 
  result := result - dts.RecordCount; 
end; 
 
procedure TForm1.Button6Click(Sender: TObject); 
var 
  s: string; 
  i: integer; 
  tbl: TTable; 
begin 
  tbl := Table1; 
  s := 'Die Datenbank enthält '; 
  i := geloeschte(tbl); 
  case i of 
    0: s := s + 'keinen gelöschten Satz.'; 
    1: s := s + 'einen gelöschten Satz.'; 
  else s := s + inttostr(i) + ' gelöschte Sätze.'; 
  end; 
  showmessage(s); 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke