![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: lokal / Netzwerk
Feldtypen in Firebird DB ermitteln
Guten Abend,
ich hoffe, Ihr seid alle gut "rübergekommen" :-D Zu meinem Problemchen: Ich kämpfe damit, die Feldtypen in einer Firebird Datenbank über meine Programmlogik zu erkennen. Meine verwendete Programmbibliothek ist FIBplus. Über pFIBQuery.FieldByName('TEST').IsNummeric(pFIBQuery .FieldByName('TEST').SQLType) kann ich zwar sehen, ob es ein nummerisches Feld ist, aber bereits das Erkennen eines VarChar geht damit anscheinend nicht mehr, zumindest finde ich es nicht :wall: Dabei interessiert mich das VarChar und hier besonders auch die Länge des VarChars. Wie kann ich mehr Informationen zu den Feldern ermitteln? Grüße, Artur P.S. Der Sinn der Sache: Ich bastele einen primitiven Import von Excel-Dateien und will einige Fehler im Vorfeld abfangen und nicht erst auf Exceptions beim Einfügen auflaufen lassen. |
Re: Feldtypen in Firebird DB ermitteln
So, hab jetzt selbst was gefunden und da es anderen auch helfen könnte, stelle ich es mal hier rein:
SQL-Code:
Das Schöne: Ist auch mit anderen Komponenten nutzbar, da es ja SQL ist :-)SELECT r.rdb$field_name fieldname, r.rdb$field_source has_domain, f.rdb$computed_blr is_computed, r.rdb$default_source ds , f.rdb$default_source ds1 , f.rdb$field_type type_nb, f.rdb$dimensions, f.rdb$field_length fieldlength, t.rdb$type_name type_name FROM rdb$relation_fields r JOIN rdb$fields f ON (r.rdb$field_source = f.rdb$field_name ) JOIN rdb$types t ON (t.rdb$type = f.rdb$field_type) WHERE (r.rdb$relation_name = :tn) AND (t.rdb$field_name = 'RDB$FIELD_TYPE') ORDER BY r.rdb$field_position Setzt aber Firebird voraus (und das es keine Unterschiede zwischen den FB-Versionen gibt). Schönen Abend, Artur |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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