Einzelnen Beitrag anzeigen

alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#14

Re: Create Table mit Firebird und ZEOS, wie richtig machen

  Alt 26. Jan 2010, 20:46
Zitat von Jens Hartmann:
Das mit der Abfrage ob die Tabelle vorhanden ist klappt allerdings nicht.
Delphi-Quellcode:
Qry_CreateTableArea.SQL.Text :=
'SELECT 1 FROM rdb$relations where rdb$relation_name = "AREA"';
Qry_CreateTableArea.Open;
Es ist immer von Vorteil sich die Fehlermeldung anzusehen, oder wenigstens zu posten.
Ich vermute mal die lautete
Code:
Column unknown.
AREA.
Das liegt an den doppelten Anführungsstrichen. Die Angaben innerhalb der doppelten A.. interpretiert
Firebird als Feldnamen. Deshalb auch "Column unknown".
Du suchst aber einen String 'AREA' im Feld RDB$RELATIONS_NAME in der Tabelle RDB$RELATIONS!
Und ein String muß in einfache Anführungsstrichen eingeschlossen sein.

Zitat von Jens Hartmann:
Wie muss ich das mit dieser Anweisung denn verstehen. was und wo befinden sich diese beiden Datenbanken/Tabellen oder so. Wenn ich das richtig verstanden habe, sind diese in meiner DB integriert. Mit
In einer Firebird-Datenbank existieren ein ganze Reihe Systemtabellen RDB$.., MON$...
In den RDB$-Tabellen werden alle Metadaten, also die Struktur der Datenbank verwaltet.
D.h. deine Tabelle 'AREA' findest du in der Tabelle RDB$RELATIONS, die dazu gehörigen
Felder in der Tabelle RDB$RELATION_FIELDS wieder.
Diese Systemtabelle können ganz normal mit SELECT abgefragt werden.
Angezeigt werden die Systemtabellen z.B. bei IBExpert nur, wenn man das entsprechende Häkchen für "Systemtabellen anzeigen" setzt.

Achtung! Es ist sicher lehrreich sich die Tabellen anzusehen. Auf keinen Fall sollte man aber die
Inhalte der Tabelle ändern. Es sei den man weiß genau was man macht und hat ein Backup der Datenbank.
Ich habe es bisher unterlassen, bis auf eine Ausnahme.

alex
Alexander
  Mit Zitat antworten Zitat