Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Spaltenname auslesen Firebird (https://www.delphipraxis.net/180944-spaltenname-auslesen-firebird.html)

Kidi 2. Jul 2014 10:10

Datenbank: Firebird • Version: 2,5 • Zugriff über: IBC

Spaltenname auslesen Firebird
 
Hallo Gemeinde,
wie kann ich in Firebird die Spaltennamen einer einzigen Tabelle auslesen?

jobo 2. Jul 2014 10:12

AW: Spaltenname auslesen Firebird
 
per Query auf:
RDB$RELATION_FIELDS

siehe auch:
http://www.firebirdfaq.org/faq174/

Kidi 2. Jul 2014 10:19

AW: Spaltenname auslesen Firebird
 
Danke Jobo,
diese Seite hatte ich auch schon gefunden. Aber leider bezieht sich das Beispiel auf alle Tabellen der Datenbank.
Ich bekomme es aber nicht so hin abzuändern, das ich nur eine einzige Tabelle auslese

Neutral General 2. Jul 2014 10:20

AW: Spaltenname auslesen Firebird
 
Einfach nach der gewünschten Tabelle im WHERE einschränken?

Code:
-- ...
WHERE rdb$relation_fields.rdb$relation_name = "TABELLE"

Kidi 2. Jul 2014 10:40

AW: Spaltenname auslesen Firebird
 
Hallo Neutral General,
leider nicht, bekomme ich dieselbe fehlermeldung wie bei meinen eigenen Versuchen. "Column unknown "Tabellenname"

mkinzler 2. Jul 2014 10:43

AW: Spaltenname auslesen Firebird
 
SQL-Code:
... WHERE upper(rdb$relation_fields.rdb$relation_name) = upper('<TABELLE>');

Kidi 2. Jul 2014 10:51

AW: Spaltenname auslesen Firebird
 
Danke MKinzler,
aber leider auch nicht weder mit noch ohne Upper immer wieder der selbe fehler.

SQL Code
SELECT RBS$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE upper(RDB$RELATION_FIELDS.RDB$RELATION_NAME) = upper(Genre)

mkinzler 2. Jul 2014 10:56

AW: Spaltenname auslesen Firebird
 
Code:
SELECT RBS$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE upper(RDB$RELATION_FIELDS.RDB$RELATION_NAME) = upper('Genre');
oder 'GENRE'

Lass dir mal die Tabelle RDB$RELATION_FIELDS anzeigen.

Kidi 2. Jul 2014 11:40

AW: Spaltenname auslesen Firebird
 
Dein Vorschlag mit 'Genre' isses leider auch nicht.
Die Tabellen aller RDB$RELATION_FIELDS in der Datenbank bekomme ich ausgelesen und die sind auch OK.
Aber sobald ich nur eine Tabelle auslesen will kommt nachwievor der Fehler Column unknown 'TabellenName'.
Das tritt auch bem IBExpert auf.

mkinzler 2. Jul 2014 11:42

AW: Spaltenname auslesen Firebird
 
Heisst die Tabelle genau so?

dataspider 2. Jul 2014 11:48

AW: Spaltenname auslesen Firebird
 
Wenn er 'TabellenName' für eine Column hält, dann hast due die einfachen Anführungsstriche vergessen.

Es ist immer eine gute Idee, den benutzten select einfach mal komplett zu posten...

Frank

Kidi 2. Jul 2014 12:44

AW: Spaltenname auslesen Firebird
 
Danke für eure Hilfe.
Ich habe das ganze jetzt über Parameter gelöst damit geht es.

SQL Code
SELECT RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME= :TabellenName

jobo 2. Jul 2014 15:39

AW: Spaltenname auslesen Firebird
 
Aber das funktioniert nun- ohne upper- nur mit exakt identischer Groß/Kleinschreibung.
Also aufpassen bei der Verwendung.


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