AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feldtypen in Firebird DB ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Feldtypen in Firebird DB ermitteln

Ein Thema von Artur · begonnen am 4. Jan 2008 · letzter Beitrag vom 4. Jan 2008
Antwort Antwort
Artur

Registriert seit: 31. Dez 2006
Ort: Augsburg
70 Beiträge
 
Delphi XE8 Enterprise
 
#1

Feldtypen in Firebird DB ermitteln

  Alt 4. Jan 2008, 16:44
Datenbank: Firebird • Version: 2.0 • Zugriff über: lokal / Netzwerk
Guten Abend,

ich hoffe, Ihr seid alle gut "rübergekommen"

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

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.
Artur
  Mit Zitat antworten Zitat
Artur

Registriert seit: 31. Dez 2006
Ort: Augsburg
70 Beiträge
 
Delphi XE8 Enterprise
 
#2

Re: Feldtypen in Firebird DB ermitteln

  Alt 4. Jan 2008, 18:04
So, hab jetzt selbst was gefunden und da es anderen auch helfen könnte, stelle ich es mal hier rein:

SQL-Code:

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
Das Schöne: Ist auch mit anderen Komponenten nutzbar, da es ja SQL ist
Setzt aber Firebird voraus (und das es keine Unterschiede zwischen den FB-Versionen gibt).

Schönen Abend,

Artur
Artur
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 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