Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ADO - Tabellennamen von einer Datenbank einlesen (https://www.delphipraxis.net/171610-ado-tabellennamen-von-einer-datenbank-einlesen.html)

AnfängerDelphi 14. Nov 2012 22:03

Datenbank: MS Access • Version: 2000 • Zugriff über: ADO

ADO - Tabellennamen von einer Datenbank einlesen
 
Hallo an alle,

wie muß folgender Code umgestellt werden,das er mit der ADO-Sql-Abfrage funktioniert?
Ich möchte nur die Spaltennamen einer Datenbank einlesen und anzeigen.
Die Ausgabe soll an eine TListBox übergeben werden.

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;
Mfg
AnfängerDelphi

Furtbichler 14. Nov 2012 22:13

AW: ADO - Tabellennamen von einer Datenbank einlesen
 
Schau Dir mal 'MyADOConnection.GetFieldNames' an.

Bernhard Geyer 14. Nov 2012 22:36

AW: ADO - Tabellennamen von einer Datenbank einlesen
 
Oder einfach ein

Code:
select * from <Tabelle> where 1=2
ausführen und dann die Feldliste durchgehen.

AnfängerDelphi 16. Nov 2012 13:32

AW: ADO - Tabellennamen von einer Datenbank einlesen
 
Hallo,

danke für eure Antworten.

Ich werde die Beispiele ausprobieren und melde mich dann wieder.


Mfg
AnfängerDelphi

defede 16. Nov 2012 14:47

AW: ADO - Tabellennamen von einer Datenbank einlesen
 
Wenn du alle Felder einer Datenbank haben möchtest... empfehle ich sowas:
SELECT a.* FROM INFORMATION_SCHEMA.COLUMNS a ORDER BY a.TABLE_NAME

Noch das Schema eingrenzen und das müsste es dann sein.

Bernhard Geyer 16. Nov 2012 15:08

AW: ADO - Tabellennamen von einer Datenbank einlesen
 
Zitat:

Zitat von defede (Beitrag 1191552)
Wenn du alle Felder einer Datenbank haben möchtest... empfehle ich sowas:
SELECT a.* FROM INFORMATION_SCHEMA.COLUMNS a ORDER BY a.TABLE_NAME

Ob Access eine Tabelle "INFORMATION_SCHEMA" hat?
AFAIK gibts die nur beim MS SQL Server


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz