Announcement

Collapse
No announcement yet.

Datenbankverbindung übers Netzwerk

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

  • Datenbankverbindung übers Netzwerk

    Hallo Leute,

    beim Verbinden zu einer Interbase Datenbankdatei auf einem anderen Rechner benutze ich als Pfad zur Datenbank einen String in der Art:<PRE>
    Entfernter_Rechner:d:\verzeichnis\unterverzeichnis \datenbank.gdb</PRE>
    anstelle des UNC-Pfades. (Siehe Posting "Connect zu IB 6 über TCP"). Das funktioniert so lange ohne Probleme, wie das ganze Laufwerk freigegeben ist. Sobald der Zugriffspfad aber nach dem Rechnernamen keinen Laufwerksbuchstaben sondern den Freigabenamen eines Verzeichnisses enthält, produziert das Programm die Fehlermeldung, dass zu dem Host mit dem Freigabenamen nicht verbunden werden kann, der spezifizierte Name kann nicht in der hosts Datei oder dem DNS gefunden werden.<br>
    In der Hosts Datei wird schon der Rechnername der IP_Nummer zugeordnet, die zusätzliche oder die exclusive Zuordnung vom Freigabenamen zur IP haben nichts gebracht.<br>
    Was mache ich hier falsch und noch wichtiger, wie muss ich es richtig machen?<br>
    Gibt es für diese Konstellation einen Königsweg?<br>
    <br>
    Danke für jeden Tipp
    Florian

  • #2
    Hallo Florian,<br><br>
    um über TCP/IP auf eine Datenbank auf einem anderen Rechner zugreifen zu können, brauchst Du <b>keine</b> freigegebene Laufwerke/Verzeichnisse/Dateien. D.h. der Client braucht die Datenbankdatei im Windows Explorer nicht zu sehen, um connecten zu können. Oder versteh ich Dein Problem irgendwie falsch?<br><br>
    Gruss,<br>
    Thomas Steinmaurer<br>
    IB LogManager 2.0 - The Logging/Auditing Tool for InterBase and Firebird<br>
    http://www.iblogmanager.com<br&gt
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Hallo Thomas,<br>

      in dem Programm selbst will ich dem Anwender nicht vorschreiben, wo er das Programm oder/und die Datenbankdatei speichert, es soll gleichgültig sein ob der IB Server und die *.gdb auf dem eigenen Rechner oder auf einem anderen Rechner im Netzwerk zu finden sind. Deshalb bleibt bei der IBX Komponente IBDatabase auch die Eigenschaft DatabaseName leer, der Anwender kann dann zur Laufzeit festlegen, wo die Datenbankdatei zu finden ist.<br>
      Das Finden der DB geht über einen OpenDialog und dafür muss der Anwender auf das Laufwerk sehen können. Nach dem erstmaligen finden wird der Anwender gefragt, ob er sich in Zukunft ohne den Dialog zu der DB connecten will, wenn ja werden die Einstellungen in ein INI geschrieben und gut ist.
      Wenn es dafür bessere Mechanismen gibt, dann bin ich für jeden Tipp dankbar.

      Floria

      Comment


      • #4
        Hallo Florian,<br><br>
        &gt; Das Finden der DB geht über einen OpenDialog<br><br>
        Schlecht, weil hier nur die lokale(n) Festplatte(n) und freigegebene Laufwerke angezeigt werden. D.h. eine Remoteverbindung über TCP/IP wirst Du so nicht realisieren können. Ich würde in Deinem Fall bei einem Anmeldedialog hier unterscheiden zwischer lokaler (InterBase Server und .gdb Datei am selben Rechner) und einer Remote (InterBase Server und .gdn Datei auf einem beliebigen Rechner im Netzwerk) Verbindung unterscheiden. Der Anmeldedialog könnte dann eine Radiogroup Komponente haben, die zwischen lokaler und Remote Verbindung unterscheidet. <br><br>
        Bei einer lokalen Verbindung kann ja der Open-Dialog zur Verfügung stehen. Bei einer Remote Verbindung wirds etwas schwerer. Hier bietet sich entweder eine zentrale INI-Datei an, die ausgelesen wird, oder besser man verwendet ein Drittherstellertool, das zentralisierte InterBase Aliases realisiert. <br><br>
        <b>IBam</b> (InterBase Alias Manager http://www.orcka.com/cgi-bin/ows.exe/getpage?ID=7) ist so ein Tool. Alle Verbindungsinformationen (Pfad, Benutzer/Passwort, Zeichensatz, ...) werden zentral am Server verwaltet, und der Client frägt dann nur mehr über diesen Namen (Alias) die notwendigen Verbindungsinformationen von diesem Server ab, und verwendet sie dann zum Verbindungsaufbau. Der Vorteil daran ist, dass der Benutzer nicht wissen muß, wo die Datenbank liegt, und ändert sich der Pfad der Datenbank am Server, dann wird einfach der Pfad für den einen Alias am Server geändert.<br><br>
        Gruss,<br>
        Thoma
        Thomas Steinmaurer

        Firebird Foundation Committee Member
        Upscene Productions - Database Tools for Developers
        Mein Blog

        Comment


        • #5
          Hallo Thomas,<br>

          das mit dem IBam werde ich mal verfolgen. Trotzdem würde ich gerne noch das Problem lösen wie oben beschrieben. Hast du eine Ahnung warum es einen Unterschied macht ob das freigegebene Objekt eine Partition ist oder ein Verzeichnis?<br>
          Floria

          Comment


          • #6
            Hallo Florian,<br><br>
            wenn du mit <i>SERVER:\DATEN\MEINEDATEN.GDB</i> auf eine Datenbank über TCP/IP zugreifst, dann braucht weder das komplette Laufwerk <i>D:</i> noch das Verzeichnis <i>D:\DATEN</i> am Server mit einer Windows-Freigabe freigegeben sein. Das ist ein wesentlicher Bestandteil des Security-Konzepts von InterBase, dass der Client keine Freigabe und auch keine Rechte in diesem Verzeichnis und auf dieser Datei benötigt. Du kannst keine Verbindung mit <i>SERVER:FREIGABENAME</i> oder <i>SERVER:\\FREIGABENAME</i> herstellen, da dies kein gültiger TCP/IP Verbindungspfad ist!<br><br>
            Du hast "theoretisch" vier Möglichekten, um dich mit einer Datenbank zu verbinden:<br><br>
            - Lokal: 'd:\daten\meinedaten.gdb'<br>
            - TCP/IP: 'server:d:\daten\meinedaten.gdb' (Windows) oder 'server:/daten/meinedaten.gdb' (Linux)<br>
            - NetBEUI: '\\server\d:\daten\meinedaten.gdb'<br>
            - IPX/SPX: keine Ahnung wie da der Connect-String genau aussieht ;-)<br><br>
            In keinen kommt ein Freigabename vor.<br><br>
            Gruss,<br>
            Thoma
            Thomas Steinmaurer

            Firebird Foundation Committee Member
            Upscene Productions - Database Tools for Developers
            Mein Blog

            Comment


            • #7
              Hallo Thomas,<br>
              ist ja fast wie telefonieren hier.<br>
              Das ist doch mal eine Aussage, jetzt weiß ich wenigstens, daß es nicht geht und brauche da nicht weiter zu probieren.

              <br>
              <br>
              Danke für deine Mühe.<br>
              Floria

              Comment


              • #8
                &gt; ist ja fast wie telefonieren hier.<br><br>
                Die E-Mail Benachrichtigung machts möglich ;-).<br><br>
                Gruss,<br>
                Thoma
                Thomas Steinmaurer

                Firebird Foundation Committee Member
                Upscene Productions - Database Tools for Developers
                Mein Blog

                Comment

                Working...
                X