Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Feldnamen einer Tabelle ermitteln (https://www.delphipraxis.net/75129-feldnamen-einer-tabelle-ermitteln.html)

BBB 14. Aug 2006 23:33

Datenbank: .adt / ADS • Version: 7.10 • Zugriff über: hm?

Feldnamen einer Tabelle ermitteln
 
Wie kann ich die Feldnamen meiner adt-Tabelle ermitteln? Ich kenne den Aufbau nicht und will einfach nacheinander die Spaltenbezeichnungen ermitteln. Hab schon einiges versucht aber ich bekomm nur Fehlermeldungen!


//edit
Hatte vergessen die Tabelle zu laden, sorry

Label1.Caption := AdsTable1.Fields.Fields[0].FieldName;

klappt schon so.


Kann ich vorher schon heraus bekommen wie viele Spalten es insgesamt gibt?

mkinzler 15. Aug 2006 05:20

Re: Feldnamen einer Tabelle ermitteln
 
Delphi-Quellcode:
AdsTable1.Fields.Count

shmia 15. Aug 2006 17:53

Re: Feldnamen einer Tabelle ermitteln
 
kleiner Tipp:
nimm lieber eine Query, die eine leere Datenmenge zurückliefert:
Delphi-Quellcode:
ADSQuery1.SQL.Text:='SELECT * FROM '+tabellename+ ' WHERE 0=1';
Bei Tabellen mit sehr vielen Datensätzen könnte es sonst sehr lange dauern,
da die Datensätze von der VCL abgerufen werden, obwohl du wahrscheinlich nur die Feldnamen brauchst.

Bernhard Geyer 15. Aug 2006 19:36

Re: Feldnamen einer Tabelle ermitteln
 
Zitat:

Zitat von shmia
Bei Tabellen mit sehr vielen Datensätzen könnte es sonst sehr lange dauern,
da die Datensätze von der VCL abgerufen werden, obwohl du wahrscheinlich nur die Feldnamen brauchst.

Kann passieren. MySQL unterstützt z.B. keine Serverseitigne Curser so das immer alle in einer Query/Table relevanten Datensätze zum Client übertragen werden.

Jens Schumann 15. Aug 2006 20:02

Re: Feldnamen einer Tabelle ermitteln
 
Hallo,
beim Interbase / Firebird würde es ausreichen dei Systemtabelle RDB$RELATION_FIELDS abzufragen.
Evt. hat der ADS auch so etwas wie Syszemtabellen.

joachimd 29. Aug 2006 09:46

Re: Feldnamen einer Tabelle ermitteln
 
Zitat:

Zitat von Jens Schumann
Hallo,
beim Interbase / Firebird würde es ausreichen dei Systemtabelle RDB$RELATION_FIELDS abzufragen.
Evt. hat der ADS auch so etwas wie Syszemtabellen.

nur bei Data Dictionaries:
SQL-Code:
select name from system.columns where parent=:mytablename


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 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