AGB  ·  Datenschutz  ·  Impressum  







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

Firebird Feldtypen richtig benennen

Ein Thema von Morphie · begonnen am 8. Jul 2009 · letzter Beitrag vom 10. Jul 2009
 
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#1

Firebird Feldtypen richtig benennen

  Alt 8. Jul 2009, 21:33
Datenbank: Firebird • Zugriff über: IBDAC
Nabend liebe DPler!

Ich möchte gerne eine Datenbank-Update-Funktion in mein Programm einbauen, so, dass ich die META-Daten (Tabellennamen, Feldnamen, Feldtypen, max. längen usw.) aus MEINER Datenbank auslese, in eine bestimmte Datei abspeichere, die die Datei dann weitergeben kann.
Beim Anwender soll das Programm dann die META-Daten mit der Datenbank des Anwenders vergleichen und ggf. die Datenbank anpassen. (neue Tabellen anlegen, Felder ändern, neue Felder anlegen, Felder löschen etc.)

Jetzt zur Frage: Wie kann ich die META-Daten sauber auslesen?
im Moment bin ich auf dieses hier gestoßen:
SQL-Code:
SELECT r.RDB$FIELD_NAME AS field_name,
r.RDB$RELATION_NAME AS tablename,
r.RDB$DEFAULT_VALUE AS field_default_value,
r.RDB$NULL_FLAG AS field_not_null_constraint,
f.RDB$FIELD_LENGTH AS field_length,
t.RDB$TYPE_NAME as field_type
FROM RDB$RELATION_FIELDS r
LEFT JOIN RDB$FIELDS f ON r.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME
LEFT JOIN RDB$TYPES t on f.RDB$FIELD_TYPE = t.RDB$TYPE
LEFT JOIN RDB$COLLATIONS coll ON f.RDB$COLLATION_ID = coll.RDB$COLLATION_ID
LEFT JOIN RDB$CHARACTER_SETS cset ON f.RDB$CHARACTER_SET_ID = cset.RDB$CHARACTER_SET_ID
WHERE r.RDB$SYSTEM_FLAG=0
AND t.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
ORDER BY r.RDB$FIELD_POSITION;
ergibt folgendes Ergebnis:
Code:
FIELD_NAME   TABLENAM   FIELD_DEFAULT_VALUE   FIELD_NOT_NULL_CONSTRAINT   FIELD_LENGTH   FIELD_TYPE
TABELLE      TABELLEN   NULL                                          1             255    VARYING
FELD         TABELLEN   NULL                                                        255    VARYING
TYP          TABELLEN   NULL                                                        255    VARYING
LAENGE       TABELLEN   NULL                                                          4    LONG
OPTIONEN     TABELLEN   NULL                                                        255    VARYING
Die Feldtypen machen mir nun ein bisschen Probleme... Eigentlich sind die Felder als VARCHAR(255) deklariert, was intern anscheinend als VARYING verarbeitet wird. Gibt es eine saubere Möglichkeit, diese Feld_typen nun SQL-Komform zu benennen? Schließlich erstelle ich die Tabelle ja so:
SQL-Code:
CREATE TABLE TABELLEN (
  TABELLE VARCHAR(255) NOT NULL,
  FELD VARCHAR(255),
  TYP VARCHAR(255),
  LAENGE INTEGER,
  OPTIONEN VARCHAR(255)
);
Hoffe ihr versteht mein Problem...
Vielen Dank im Voraus
  Mit Zitat antworten Zitat
 


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 11:48 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