Hi,
vielleicht will ja mal jemand wissen, was in seiner Datenbank eigentlich los ist. Folgendermaßen kann man sich die Tabellen auflisten inkl. Anzahl der enthaltenen Datensätze pro Tabelle (getestet für Interbase) :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
DbDS.Close;
DbDS.SelectSQL.Text := 'select * from rdb$relations where NOT (RDB$RELATION_NAME LIKE ''RDB$%'') ORDER BY RDB$RELATION_NAME';
DbDS.Open;
DbDS.First;
i := 0;
while not DbDS.Eof do begin
DetailDS.Close;
DetailDS.SelectSQL.Text := 'SELECT COUNT (*) AS ANZAHL from '+DbDS.FieldByName ('RDB$RELATION_NAME').AsString;
DetailDS.Open;
with StringGrid1 do begin
RowCount := RowCount + 1;
Cells [0,i] := IntToStr (i);
Cells [1,i] := DbDS.FieldByName ('RDB$RELATION_NAME').AsString;
Cells [2,i] := DetailDS.FieldByName ('ANZAHL').AsString;
end;
i := i + 1;
DbDS.Next;
end;
end;
Neben dem üblichen (also Database, Transaction) braucht man noch 2 Datasets. Hier DbDS für die Namen und DetailDS für die Anzahl. Wichtig ist hier noch :
LIKE ''RDB$%''
Dadurch werden die Systemtabellen nicht mit aufgelistet.
[edit=MrSpock] Mfg, MrSpock[/edit]