Announcement

Collapse
No announcement yet.

SQL und Fremd-Datenbank

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

  • SQL und Fremd-Datenbank

    In Deinem Buch 'Client/Server' wird unter 'SQL-Beispiele' beschrieben, wie SQL bei DB-Datenbanken angewendet wird. Nun versuche ich diese Beispiele bei einer Fremd-Datenbank umzusetzen. Auf die Fremd-Datenbank soll über einen ODBC-Treiber zugegriffen werden. Der ODBC-Treiber ist im ODBC-Datenquellen-Administrator unter Benutzer-DSN eingetragen. Die Datenbank mit ihren verschiedenen Tabellen kann über den Datenbank-Explorer eingesehen werden. Ich kann auch in Delphi4 die Daten aus dieser Datenbank einlesen (z.Zt. noch mit z.B. sPersNr := Table1.FieldByName('p_nr').AsString. Ich möchte aber in Zukunft verstärkt SQL einsetzen.

    Ich habe schon versucht, in dem Programm 'Datenbankoberfläche' im Menü Tools/Alias-Manager einen neuen Alias anzulegen. Nur erscheint unter Treiber kein ODBC-Treiber.

    Kannst Du mir einen Tip geben, wie ich die 'Datenbankoberfläche' mit dem ODBC-Treiber verbinde, damit ich die SQL-Beispiele auch mit einer Fremd-Datenbank ausprobieren kann ? Oder muß ich einen ganz anderen Weg gehen ?

    MfG.
    Uwe

  • #2
    Hallo,

    wenn im Datenbank-Explorer (alias SQL-Explorer in der Enterprise-Version) über den ODBC-Treiber auf die Datenbank zugegriffen werden kann, ist dies automatisch (ohne eigenes Zutun) auch in der Datenbankoberfläche möglich:

    1. Datenbankoberfläche starten <br>
    2. Menü "Datei | Öffnen | Tabelle..."<br>
    3. Im Dialog "Tabelle öffnen" wird der <b>im Datenbank-Explorer</b> vergebene Alias-Name aus der Liste ausgewählt (die ODBC-Aliase werden durch ein anderes Symbol als die nativen BDE-Aliase hervorgehoben). Ist das erledigt, zeigt der Dialog alle Tabellen in dieser Datenbank an. <br>
    4. Eine beliebige Datenbanktabelle wird geöffnet - im Fenster wird die Syntax der Alias-Bezeichnung in der Titelzeile angezeigt. Diese Alias-Syntax muss nun auch in der eigenen SQL-Anweisung verwendet werden.<br>
    5. Über "Datei | Neu | SQL-Datei" wird ein neues SQL-Fenster geöffnet.
    In meinem Beispiel kann ich nun folgendes eintragen:
    <pre>
    SELECT * FROM :ODBC_VR89:BVR
    </pre>
    Der Alias-Name wird von einem Doppelpunkt gekapselt, der Tabellenname (hier im Beispiel "BVR") wird ohne Leerzeichen angehängt.

    Im Dialog "Tools | Tabellenoperationen | Kopieren..." steht auch die Auswahl-Liste der bereits vorhandenen Alias-Namen zur Verfügung, so das auch dort der ODBC-Alias ausgewählt werden kann.

    P.S: Alle SQL-Beispiele aus dem Buch können selbstverständlich auch direkt aus dem Datenbank-Explorer abgesetzt werden (Registerseite SQL)

    Comment


    • #3
      Hallo Andreas,
      vielen Dank für Deine Antwort. Im Punkt 3. zu der Datenbankoberfläche beschreibst Du, wie ich den Alias-Name aus der Liste auswählen soll. Nur dort steht nicht der Alias-Name, so wie ich ihn im Datenbank-Explorer sehe. Dort steht nur als Alias 'ARBEIT:', 'DBDEMOS:', 'DefaultDD:', 'IBLocal:', 'PRIVAT:' und 'Keine' mit den entsprechenden Tabellen.

      In dem Dialogfeld 'Tabelle öffnen' steht bei Dateityp immer (außer bei 'IBLocal:') der gleiche Eintrag: 'Tabellen (*.db;*.dbf).

      Du schreibst zwar, wenn im Datenbank-Explorer über den ODBC-Treiber auf die Datenbank zugegriffen werden kann, ist dies automatisch (ohne eigenes Zutun) auch in der Datenbankoberfläche möglich. Kann es aber sein, daß ich die Liste (wie auch immer) erst einmal aktuallisieren muß, bevor ich 'meinen' Alias sehen kann, um dann bei Deinem beschriebenen Punkt 4. weiterzumachen ?

      MfG.
      Uw

      Comment


      • #4
        Hallo,

        ich bin mir sicher, keine Voreinstellungen geändert zu haben. In der Datenbankoberfläche steht im Dialog <i>Alias Manager</i> der Radiobutton auf dem Wert <b>Alle Aliasnamen anzeigen</b>. In der Listbox <b>Datenbankalias</b> sollten nun alle die BDE-Aliasnamen stehen, die auch im SQL-Explorer angezeigt werden.

        In der <b>BDE-Verwaltung</b> ist im Dialog <i>Optionen</i> der Eintrag <b>Nur Windows 95/NT</b> ausgewählt - ausserdem sind alle 3 Checkboxen angekreuzt.

        Was wird im SQL-Explorer (alias Datenbank-Explorer) bzw. in der BDE-Verwaltung angezeigt, wenn die ODBC-Treiberverbindung zur Fremd-Datenbank aus diesem Tool heraus verwendet wird? Wurde auch wirklich zusätzlich zum ODBC-DSN ein BDE-Alias für diesen DSN angelegt?

        &#10

        Comment


        • #5
          Hallo Andreas,
          ich wußte mir nicht mehr weiterzuhelfen und habe den BDE-Alias gelöscht und wieder neu angelegt. Jetzt erscheint er auch in der Liste zusätzlich zu 'ARBEIT:', 'DBDEMOS:', 'DefaultDD:', 'IBLocal:', 'PRIVAT:' und 'Keine'.

          Kleine Ursache, große Wirkung. Vielen Dank für Deine Unterstützung. Hättest Du eine Empfehlung für weiterreichende Lektüre zum Thema Delphi und SQL ?

          MfG.
          Uw

          Comment


          • #6
            Hallo,

            obwohl SQL offiziell ein Standard ist, kocht jeder Datenbank-Herstellung in Bezug auf Sprachumfang und Syntax sein eigenes Süppchen. Daher würde ich mich auf die Handbücher zum eigenen SQL-Server konzentrieren

            Comment

            Working...
            X