Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Infos über Tabellen und Felder einer Access-DB auslesen (https://www.delphipraxis.net/43947-infos-ueber-tabellen-und-felder-einer-access-db-auslesen.html)

torud 11. Apr 2005 08:19

Datenbank: Access • Zugriff über: JET 4.0

Infos über Tabellen und Felder einer Access-DB auslesen
 
Hallo Wissende!

Gibt es eine oder mehrere Möglichkeiten Informationen über Tabellen und deren Felder in einer Access-DB auszulesen. Also von mir aus:

Tabelle (nicht die ganze DB!) : Grösse (kb), Erstellt am, zuletzt modifiziert am

und das Gleiche für die Felder der Tabelle?

Ich würde diese Infos gern anzeigen und eventuell auch nach diesen Kriterien sortieren, wenn denn möglich!?

shmia 11. Apr 2005 09:25

Re: Infos über Tabellen und Felder einer Access-DB auslesen
 
Zitat:

Zitat von torud
Gibt es eine oder mehrere Möglichkeiten Informationen über Tabellen und deren Felder in einer Access-DB auszulesen. Also von mir aus:
Tabelle (nicht die ganze DB!) : Grösse (kb), Erstellt am, zuletzt modifiziert am
und das Gleiche für die Felder der Tabelle?
Ich würde diese Infos gern anzeigen und eventuell auch nach diesen Kriterien sortieren, wenn denn möglich!?

Das ist mit ADOX (Active Data Object eXtention) möglich.
(die Grösse eine Tabelle lässt sich allerdings nicht auslesen)
Doku & Objektmodell
http://msdn.microsoft.com/library/de...bjectmodel.asp
Wenn du mit ADOX arbeiten willst, dann musst du zuerst die TLB importieren:
im Delphi Menu->Projekt->TLB importieren und dann
"Microsoft ADO Ext. 2.8 for DDL and Security" auswählen.
Eine Version vor 2.8 wäre auch OK.

torud 11. Apr 2005 09:58

Re: Infos über Tabellen und Felder einer Access-DB auslesen
 
Könntest Du/Ihr mir noch ganz kurz umreissen, wie man dann während der Laufzeit dies zum Einsatz bringen kann!?

Muss ich die durch Adox zur Verfügung stehenden Objekte auf mein Datenmodul ziehen und daaruaf zugreifen?

Ist das möglich auch während ich eine Connection über Ado am Laufen habe?

shmia 11. Apr 2005 10:21

Re: Infos über Tabellen und Felder einer Access-DB auslesen
 
Zitat:

Zitat von torud
Könntest Du/Ihr mir noch ganz kurz umreissen, wie man dann während der Laufzeit dies zum Einsatz bringen kann!?

1.) Catalog-Interface erzeugen
Delphi-Quellcode:
var
   MyCatalog : __Catalog;
MyCatalog := CoCatalog.Create;
2.) Connection zuweisen
Delphi-Quellcode:
  MyCatalog.ActiveConnection := ADOConnection1.ConnectionObject;
3.) Tabellen auslesen
Delphi-Quellcode:
var
   MyTable : Table;
for i:=0 to MyCatalog.Tables.Count-1 do
begin
   MyTable := MyCatalog.Tables.Items[i];
   ShowMessage(MyTable.Name +'---'+MyTable.Type_);
end;
Zitat:

Zitat von torud
Muss ich die durch Adox zur Verfügung stehenden Objekte auf mein Datenmodul ziehen und daaruaf zugreifen?

Entweder so oder wie oben gezeigt das Catalog-Objekt dynamisch erzeugen.
Zum Auslesen von Info's über eine Datenbank brauchst du nur das Catalog-Objekt erzeugen.
Alle anderen Objekte erhält man aus dem Catalog.

Zitat:

Zitat von torud
Ist das möglich auch während ich eine Connection über Ado am Laufen habe?

Ja, kein Problem. Du brauchst sowieso eine offene ADOConnection.

torud 11. Apr 2005 10:36

Re: Infos über Tabellen und Felder einer Access-DB auslesen
 
Cooool, danke für die Super-Info!
So wie ich es verstehe, müsste es ja dann sogar möglich sein, das Datum der Erstellung einer Tabelle und seine letzte Modifikation rausbekommen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 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-2025 by Thomas Breitkreuz