Announcement

Collapse
No announcement yet.

View mit Select auf eine externe Firebird Datenquelle?

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

  • View mit Select auf eine externe Firebird Datenquelle?

    Hallo Leute,

    das ist mein erstes posting in diesem Forum, leider gleich ein cross post und zwar hier: Click, leider bisher ohne Antwort.

    Da es hier extra ein Forum zum Thema Firebird gibt, hoffe ich das mir hier vielleicht jemand weiterhelfen kann.


    Also, ich möchte auf einem Firebird Datenbankserver eine View erstellen, die ein Select auf eine externe Datenquelle (auch Firebird) absetzt. Leider gibt es bei Google kaum was zu dem Thema.

    Das hier habe ich gefunden: www.firebirdfaq.org/faq16/

    Mir fehlt nur eine zündende Idee, wie ich das in einer View verwenden kann. (In dem SQL-Window habe ich bisher auch keine funktionierende Abfrage zustande bekommen)

    Dann hatte ich noch das hier gefunden, sehr ähnlich, aber etwas kürzer.

    Ich habe versucht es so anzuwenden:
    [highlight=sql]
    SELECT * FROM(
    FOR EXECUTE STATEMENT
    'select code, name from TMaster where group = 'A' '
    ON EXTERNAL DATA SOURCE '[IP Adrress]:\Data\DB\master.fdb' AS USER 'u' PASSWORD
    'p' ROLE 'R'
    into :code, :name do suspend
    [/highlight]

    Leider ohne erfolg, das lässt sich nicht mal compilen.

    Meine Firebird Version ist 2.5.2, die passt somit. Es muss also an meiner Verwendung des EXECUTE STATMENT liegen.

    Hat hier jemand eine Idee, oder entsprechende Kenntnisse, wie man mit dem Beispiel aus der Doku arbeitet?

    Über Anregungen und Ideen freue ich mich! Vielen Dank schon mal so weit!

    Falls es in dem andren Post Neuigkeiten gibt, mache ich diese hier umgehend bekannt!
    Zuletzt editiert von Christoph1972; 13.08.2013, 17:38.

  • #2
    Das Ding liefert dir immer Variablen aber nie einen Tabelle. Auch nicht wenn du anstatt der FOR ... EXECUTE die FOR ... DO Variante wie in der Doku benutzt.

    Ich sehe keine Möglichkeit das als View zu verbasteln. Und wenn es ginge und du versuchst da irgendwie mit zu joinen wäre die Performance wahrscheinlich so grotten schlecht das du es nicht benutzen würdest .
    Ich würde dir vorschlagen das so zu machen wie zwischen den Zeilen auf den Firebird seiten empfohlen. Mach das via einer DataPump und kopiere dir die Daten regelmäßig in deine DB und joine dann mit denn lokalen Daten.

    Comment


    • #3
      Hi,

      vielen Dank für deine Unterstützung!

      Unter "ON EXTERNAl DATA SOURCE" hatte ich mir etwas anders vorgestellt. Schade, das wäre aktuell wirklich praktisch gewesen. Na ja, mal schauen wie dich das jetzt löse.

      Wie würdet ihr das lösen, was habt ihr für Ideen?

      Ich würde es am schönsten finden, wenn einer der Firebird Server diese "Pump-Funktion" übernehmen könnte. Mir würde nur eine Timer gesteuerte Lösung mit ADO.Net von der Hand gehen. Aber das finde ich wenig elegant.


      Mir fällt da gerade was wie Schuppen aus den Haaren.......

      Könnte ich nicht das Laufwerk mit der Datenbankdatei freigeben und dieses auf dem Rechner (mit der geplanten View) mappen und das gemappte Laufwerk in der Firebird Konfiguration festlegen? Ich glaube das müsste gehen, oder?

      Werde ich gleich sofort testen! Wenn das ginge, könnte das die aller einfachste und auch beste Lösung sein:-)

      Ich werde berichten.........

      Comment


      • #4
        Gute Idee, aber...

        Installing the Firebird server
        Installation drives

        Firebird server – and any databases you create or connect to – must reside on a hard drive that is physically connected to the host machine. You cannot locate components of the server, or any database, on a mapped drive, a filesystem share or a network filesystem.
        Dann muss ich mir wohl eine "Pumpe" mit ADO.Net bauen.

        Comment


        • #5
          Der Kommentar ist nicht ganz richtig. Man kann fdb's aus einem NetworkShare öffnen. Stichwort ist RemoteFileOpenAbility.

          Verstehe aber nicht ganz wie du dir das vorgestellt hast. Die Datenbank wird doch wohl gleichzeitig von einem anderen Firebird Server verwendet. Du wolltest doch wohl nicht versuchen die Datenbankdatei gleichzeitig von 2 Servern aus zu verwenden oder? Das geht natürlich nicht.

          Comment


          • #6
            Originally posted by Ralf Jansen View Post
            Du wolltest doch wohl nicht versuchen die Datenbankdatei gleichzeitig von 2 Servern aus zu verwenden oder?
            Natürlich wollte ich das :-) Da ich nur lesen wollte, dürfte es ja praktisch kein Problem sein, aber gut das hat sich ja erledigt.

            Der Zitat von mir ist aus der Firebird Doku. Die RemoteFileOpenAbility dürfte mir aber bei meinem Vorhaben auch nicht weiterhelfen. Es muss wohl gepumpt werden.....

            Comment

            Working...
            X