Announcement

Collapse
No announcement yet.

Herausfinden, ob Datenbank bzw. Tabelle existiert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Herausfinden, ob Datenbank bzw. Tabelle existiert

    Hi Leute!

    Habe hier gleich mal 2 Fragen auf einmal:<p>
    1. Ich möchte mich mit einem Delphiprogramm auf einem Remote-Interbase Server verbinden und feststellen, ob die Datenbank <i>/../database/xyz.gdb</i> existiert. Eigentlich kann ich mich mit der TIBDatebase-Komponente aber nur mit einer schon existierenden Datenbank verbinden. Demnach kann ich nicht vorher prüfen lassen, ob es diese DB überhaupt gibt.
    <p>
    2. Wenn ich mich mit einer Datenbank verbunden habe, wie kann ich dann herausfinden, ob die Tabelle xyz auf dieser Datenbank existiert???
    <p>
    mfG

    F.H.

  • #2
    Hallo,

    1) den Connect-Aufruf in einen <b>try except Block verpacken</b><br>
    Da Du nicht davon ausgehen kannst, dass das Client-Programm Zugriff auf das DB-Verzeichnis hat muß IB selber prüfen ob die Datenbank vorhanden ist.

    2)

    Variante 1:
    wieder <b>try except-Block</b> und innerhalb dessen einfach ein Select auf die gesucht Tabelle auslösen (z.B. "select * from suchtabelle where 1=2"). Mit der Where-Klausel 1 = 2 stellst Du sicher, das nur die Struktur der Tabelle gelesen wird, aber keine Datensätze gefunden werden.

    Variante 2:
    Zugriff auf die Systemtabellen von Interbase (mit gewissem Risiko verbunden, da sich in zukünftigen IB-Versionen ja mal die Struktur der Systemtabellen ändern könnte)<br>
    <b>select count(*) from rdb$relations<br>
    where RDB$RELATION_NAME = 'SUCHTABELLE'</b>

    Variante 3:
    IBDataBase.GetTableName() und dann suchen ob die gewünschte Tabelle dabei ist

    Tschüß

    Torste

    Comment

    Working...
    X