Günter S. Heinrich: OracleDB Anbindung über ODBC für HTML

Ich wünsche ersteinmal allen einen wunderschönen guten Morgen :-)

nachdem ich auch schon in eurem (oder unseren???) Archiv rumgestöbert habe, stellt sich bei mir immer noch folgendes Problem:
Wir haben eine Server-seitige Programmierung (DB Oracle), die über die client-seite benutzt wird (Intranet). Die Verbindung läuft über SQLnet.
Ich weiß das man z. B. eine externe Datenbankabfrage  in Excel über Oracle (ODBC Schnittstelle) stellen kann. Ich möchte jetzt gerne das selbe machen mit HTML über Oracle und der ODBC Schnittstelle. Das alles soll dann von der client-Seite aus abrufbar sein.
Ich hoffe das die Fragestellung eindeutig ist

Wahrscheinlich werden jetzt einige erst einmal lachen über diese "pipifax" Problemstellung. (Außer ich)
Mich würde es wirklich freuen, wenn jemand eine "leicht verständliche" Lösung wüßte.

Besten Dank auch und noch viel spaß
Günter

  1. Hallo Günther,

    kenn mich da zwar nicht so aus, aber es müsste doch möglich sein einen Internetserver zu installieren, der  über ODBC und ein CGI-Script auf die Datenbank zugreift, eine HTML-Datei generiert, und diese dann an Browser des Client sendet.
    Das ist die Grundidee, und ich denke das ist nicht so schwer, Du must nur wissen, wie man die ODBC Schnittstelle anspricht, und diese in einer Programmiersprache Deiner Wahl machen.

    Hoffe der Beitrag war zumindest ein klein wenig hilfreich, wenn auch nicht sehr *g*

    Marko

    1. Hallo Günther,

      kenn mich da zwar nicht so aus, aber es müsste doch möglich sein einen Internetserver zu installieren, der  über ODBC und ein CGI-Script auf die Datenbank zugreift, eine HTML-Datei generiert, und diese dann an Browser des Client sendet.
      Das ist die Grundidee, und ich denke das ist nicht so schwer, Du must nur wissen, wie man die ODBC Schnittstelle anspricht, und diese in einer Programmiersprache Deiner Wahl machen.

      Hoffe der Beitrag war zumindest ein klein wenig hilfreich, wenn auch nicht sehr *g*

      Marko

      Hallo Günther,

      Marko hat völlig recht. Genauso machen wir das. Für das CGI-Programm hast Du freie Auswahl Eine 'ausgewachsene' Programmierspreche, ASP, Java-Servlets, ... Perl müßte eigentlich auch gehen.
      Wir haben hier sogar eine recht aufwengie Konstruktion: einen Webserver mit einem kleinen CGI-Proggi, das die eigentliche Applikation auf einem anderen Applikationsserver aufruft und die Parameter weiterreicht. Auf dem Applikationsserver ist SQL*Net installiert und eine Verbindung zur Datenbank eingerichtet, die wiederum auf einem dritten Rechner liegt. Prizipiell geht es aber auch einfacher. Das CGI-Proggi kann direkt auf die Datenbank zugreifen und das nötige HMTL-Ausgabefile generieren. Dann muß SQL*Net eben auf dem Webserver installiert sein.

      Viele Grüße
      Kess

      1. Hallo Günther,

        Hoffe der Beitrag war zumindest ein klein wenig hilfreich, wenn auch nicht sehr *g*

        Marko

        Ich bin für jede Hilfe dankbar
        DANKE! :-D

        Hallo Günther,
        Marko hat völlig recht. Genauso machen wir das. Für das CGI-Programm hast Du freie Auswahl Eine 'ausgewachsene' Programmierspreche, ASP, Java-Servlets, ... Perl müßte eigentlich auch gehen.

        Viele Grüße
        Kess

        Hallo Kess,
        Auch Dir danke ich schon mal recht herzlich.
        Aber einige Leute haben mir gesagt, das es nicht erforderlich wäre Perl, PHP, ASP etc. miteinfließen zu lassen, sondern das es reicht, wenn man die DBAbfrage mit SQL über eine ODBC Schnittstelle anbindet. (in Excel brauche ich bei einer externen DB Abfrage auch keine anderen Kenntnisse wie Perl, PHP, ASP etc.)
        würde mich freuen, wenn ich dazu ein Statement bekäme, :-D
        Danke
        Günter

        1. Hallo Kess,
          Auch Dir danke ich schon mal recht herzlich.
          Aber einige Leute haben mir gesagt, das es nicht erforderlich wäre Perl, PHP, ASP etc. miteinfließen zu lassen, sondern das es reicht, wenn man die DBAbfrage mit SQL über eine ODBC Schnittstelle anbindet. (in Excel brauche ich bei einer externen DB Abfrage auch keine anderen Kenntnisse wie Perl, PHP, ASP etc.)
          würde mich freuen, wenn ich dazu ein Statement bekäme, :-D
          Danke
          Günter

          Hallo Günter,

          Du möchtest also das SQL-Statement direkt vom Webserver an die ODBC-Schnittstelle schicken lassen und erwartest, daß der Webserver aus den zurückgelieferten Daten eigenständig ein HTML-File generiert ?
          Neee, das geht net. Wenn ein Webserver das kann, dann ist das eine absolute Besonderheit des betreffenden Servers. Dazu fällt mir als einzigster der Oracle WebServer ein. Evtl. beherrscht der das.

          Um bei Deinem Beispiel mit Excel zu bleiben. Excel kann kein SQL und wüßte auch gar nicht, wohin es die Abfrage schicken sollte. Dazu wird MS Query in Excel eingebunden. Das ist aber wiederum eine Erweiterung, so wie der Webserver eine Erweiterung braucht. Bei Excel fällt Dir das nur nicht so auf, weil MS das schon seit längerem standardmäßig mit anbietet.

          Viele Grüße
          Kess

          1. Hallo Günter,

            Du möchtest also das SQL-Statement direkt vom Webserver an die ODBC-Schnittstelle schicken lassen und erwartest, daß der Webserver aus den zurückgelieferten Daten eigenständig ein HTML-File generiert ?

            ........nicht ganz, ich habe ein HTML file, und beabsichtigt wird, das wenn ich auf die 2. Seite klicke auf der 2. Seite in einer vordefinierten Tabelle (erstellt in DreamWeaver) ich dann eine ausgefüllte Tabelle habe, mit den aktuellen Daten aus der OracleDB

            Dazu fällt mir als einzigster der Oracle WebServer ein. Evtl. beherrscht der das.
            Um bei Deinem Beispiel mit Excel zu bleiben. Excel kann kein SQL und wüßte auch gar nicht, wohin es die Abfrage schicken sollte. Dazu wird MS Query in Excel eingebunden.
            Viele Grüße
            Kess

            ........... ich dachte, das wenn ich eine HTML Tabelle habe, das ich dann nur genau definieren muß, (über SQL?) welche Daten er mir in meine HTML Seite anzeigt bzw. abfrägt.

            Ich weiß, das ich noch eine Menge zu lernen habe, aber ausdauer führt zum erfolg ;-)
            Ich bedanke mich für eure Hilfe
            Günter

            1. Sorry Günther,
              so wie Du es Dir vorstellst habe ich das noch nirgends gesehen. Da kann ich Dir leider nicht mehr weiterhelfen.
              Viele Grüße
              Kess

              1. Sorry Günther,
                so wie Du es Dir vorstellst habe ich das noch nirgends gesehen. Da kann ich Dir leider nicht mehr weiterhelfen.
                Viele Grüße
                Kess

                Ich danke Dir trotzdem recht herzlich, aber man kann halt nicht alles wissen ;-)
                (Leider, aber mein Credo lautet "Ausdauer führt zum Erfolg! :-)

                Schönen Tag noch
                Günter

            2. ........... ich dachte, das wenn ich eine HTML Tabelle habe, das ich dann nur genau definieren muß, (über SQL?) welche Daten er mir in meine HTML Seite anzeigt bzw. abfrägt.

              Das scheint ein Fall von Sprachverwirrung zu sein.

              Der Begriff "Tabelle" bedeutet in HTML und Oracle zwei sehr verschiedene Dinge. In HTML ist das eine Layoutanweisung, in Oracle ein hochkomplexes Gebilde mit eigener Intelligenz (Triggern, Constraints etc.).
              Eine strikte 1:1-Abbildung zwischen beiden Welten würde kaum Sinn machen. (Beispielsweise bringt die Ausgabe einer HTML-Tabelle für ein "select * from ..." mit 100000 Datensätzen ziemlich sicher jeden Browser zum Zusammenbruch, der die Tabelle dynamisch layouten will.)

              Ich würde Dir empfehlen, ODBC nur zu benutzen, wenn Du etwas davon hast. Du handelst Dir dabei eine weitere Kommunikationsschnittstelle ein, die Du gar nicht brauchst.

              Du kannst einen beliebigen Webserver auf Deinem Oracle-Server installieren und von diesem aus über CGI-Schnittstelle Programme aufrufen, die Du in jeder beliebigen - auch oracle-spezifischen - Programmiersprache schreiben kannst.
              Ich habe das schon mal gemacht: Unsere Oracle-Datenbank wird im Wesentlichen durch Anwendungsprogramme in Pro*C (das ist ein C-Dialekt mit embedded SQL-Kommandos, welche durch einen Präprozessor in C-API-Aufrufe zu Oracle-Bibliotheken vorübersetzt werden) versorgt bzw. ausgewertet.
              Ich konnte eines der Auswertungsprogramme nehmen, die Ausgabeschnittstelle um ein paar HTML-Anweisungen (und den http-Header) ergänzen und statt Reports in ASCII-Dateien Reports über einen Webserver erzeugen. Die Logik der gesamten Datenbankanwendung (login, Transaktionskonzept etc.) blieb dabei völlig unverändert.

              1. Hallo

                Ich würde Dir empfehlen, ODBC nur zu benutzen, wenn Du etwas davon hast. Du handelst Dir dabei eine weitere Kommunikationsschnittstelle ein, die Du gar nicht brauchst.

                Klar hast Du eine weitere Schnittstelle, dafuer kannst Du schnell mal die DB auswechseln, die hinter der Schnittstelle steht. Ok zugegeben, wer wuerde die DB wechseln, wenn er sowieso schon bei Oracle ist.

                Calocybe

              2. »»(Beispielsweise bringt die Ausgabe einer HTML-Tabelle für ein "select * from ..." mit 100000 Datensätzen ziemlich sicher jeden Browser zum Zusammenbruch, der die Tabelle dynamisch layouten will.)

                Ich möchte auf meiner 2. HTML Seite ja nur eine Datenausgabe von ca. 12 Daten  (in Form von einer Tabelle) haben die aus der OracleDB sind (vorher festgelegt über SQL??) und das alles läuft vorerst nur im Intranet.

                Ich würde Dir empfehlen, ODBC nur zu benutzen, wenn Du etwas davon hast.

                Sorry, aber das verstehe ich nicht "...wenn Du etwas davon hast"???

                Ich weiß, das ich noch eine Menge zu lernen habe, aber ich arbeite daran :-)

                Danke euch allen für eure Ausdauer, und eure Hilfe.
                Günter

                1. Ich würde Dir empfehlen, ODBC nur zu benutzen, wenn Du etwas davon hast.
                  Sorry, aber das verstehe ich nicht "...wenn Du etwas davon hast"???

                  Wie Calocybe auch schon geschrieben hat: Ich meinte, Du willst doch eigentlich in SQL "denken", und das kannst Du in Oracle-eigenen Sprachen wie Pro*C sehr gut tun. ODBC dazwischen verlangt, daß Du Dich von einer weiteren Konvention abhängig machst, die Dein System schwerer verständlich, komplexer, unüberschaubarer, anfälliger machen.

                  Natürlich aber auch leichter portierbar etc. Wenn Du also eine realistische Chance siehst, Dein Program jemals mit einer anderen Datenbank als Oracle laufen zu lassen, dann mag ODBC sich vielleicht schon beim ersten Versuch lohnen - oder wenn Du gewohnt bist, ODBC zu verwenden, weil Du auch sonst portable Datenbankanwendungen schreibst.
                  Aber nicht immer ist der "proprietäre" Ansatz, den ich hier empfehle, schlecht - wenn Du die Menge der eingesetzten Werkzeuge überschaubar hältst, kannst Du sie leichter beherrschen lernen.