Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi embedded Firebird Datenbank wechseln für Netzwerkanwendung (https://www.delphipraxis.net/112015-embedded-firebird-datenbank-wechseln-fuer-netzwerkanwendung.html)

Grayskull 13. Apr 2008 13:04

Datenbank: Firebird • Version: 2 • Zugriff über: Embedded

embedded Firebird Datenbank wechseln für Netzwerkanwendung
 
Hallo,

habe eine Anwendung, die eine embedded Firebird Datenbank nutzt und lokal auf diese Zugreift. Die Anwendung ist in Delphi geschrieben - ich habe allerdings nicht den Code und kann da also weder reinschauen geschweige denn etwas verändern.
Aber es gibt eine ini Datei mit folgenden Inhalten:

Code:
// ------------------------------------------------------------------
// Login settings
// ------------------------------------------------------------------
[Login Settings]
ShowLogin=False
Username=Op
Userpassword=xxxx


// ------------------------------------------------------------------
// Registered databases
// ------------------------------------------------------------------
[Database 0]
DBName=Testdatenbank
DatabasePath=TestDatabase
ServerIP=127.0.0.1
ServerType=Local
DatabaseCompletePath=C:\KBUS\DB\KTEST.FDB


[Database 1]
DBName=Hauptdatenbank
DatabasePath=MainDatabase
ServerIP=127.0.0.1
ServerType=Local
DatabaseCompletePath=C:\KBUS\DB\KMAIN.FDB
Und in aliases.conf stehen sie dann auch drinne:

Code:

# List of known database aliases
# ------------------------------ 

# Examples:

#   dummy = c:\data\dummy.fdb


# database aliases for KBUS
TestDatabase=C:\KBUS\DB\KTEST.FDB
MainDatabase=C:\KBUS\DB\KMAIN.FDB
Solange ich einen lokalen Pfad angebe und diese beiden Dateien anpasse, kann ich die FDB Dateien verschieben wohin ich will und alles funktioniert noch.
Mein wunsch ist nun der - ich möchte diese Anwendung auf zwei PCs nutzen aber die gleiche Datenbank verwenden. Und dazu will ich entweder als .FDB Files einen Pfad auf einem Netzlaufwerk angeben oder anstatt dem Embedded Server die Datenbank auf einem Classic oder SuperServer laufen lassen und die Anwendung dazu bringen, mit diesem zu kommunizieren.

Ich bin zwar immerhin schon so weit gekommen, dass ich auf einem Classic Server mit isql und den Benutzerdaten aus der ini Datei zu KMAIN.FDB connecten konnte aber das war's auch schon.
Ich finde keine Einstellungen, mit denen die Anwendung einen Netzwerkpfad akzeptiert und habe leider auch keine Ahnung, wie ich einstellen kann, dass statt der embedded Datenbank eine andere genommen werden soll.

Habt ihr Ideen, wie die ini Datei anzupassen wäre? Denkt ihr, das ist überhaupt möglich ohne den Delphi Code zu ändern?
Gibt es wenigstens eine Möglichkeit, die .FDB Datei im Netzwerk abzulegen? Auch wenn dann nur eine Anwendung gleichzeitig drauf zugreifen kann, wäre immerhin die Datenbasis konsistent.

Bin für alle Anregungen dankbar

mkinzler 13. Apr 2008 13:08

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Die Inis sehen nicht nach embedded Version aus.
Ersetzte mal den Servernamen mit dem des Servers und den Pfad mit dem pfad aus Serversicht oder dem Alias

Grayskull 13. Apr 2008 13:24

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Also im Istallationsverzeichnis der Anwendung liegen m.E. genau die Dateien drinne, die im Zip-File stecken wenn man die Firebird Embedded Version runterlädt. Aber genau weiß ich es nicht. Warum sieht es nicht nach embedded aus?

Servername ersetzen? Du meinst die IP des Servers einstellen? Das ist ja im Prinzip auch mein Localhost solange ich noch am Testen bin.

Zum Pfad aus Serversicht:
Ich starte also auf dem entfernten Rechner einen Firebird Server und dort liegt meine FDB Datei auf irgendeinem lokalen Pfad: C:\irgendwo\MAIN.FDB

Den gebe ich dann an, obwohl ich selbst nicht mit \\IPdesRechners\irgendwo\MAIN.FDB darauf zugreifen kann, weil das nur eine Angabe ist wo sich die Serveranwendung die Daten beschafft und die kommt mit C:\irgendwo\MAIN.FDB da ran?


Noch eine Frage - ist mein Classic Server eigentlich geeignet oder brauche ich den SuperServer. Ich hatte mich für Classic entschieden, weil da stand, dass man FDB Files direkt wählen kann.

Danke

mkinzler 13. Apr 2008 13:44

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Der embedded-Client erkennt anhand des Connection-Strings, ob er als "normaler" Client fungiert oder den eingebauten Server verwendet.
Bei der embedded-Verwendung ist der Servername leer. In deinem Fall wäre es möglich, das das Programm bei localhost oder 127.0.0.1 kewinen Servernamen verwendet. Versuch es mal mit der IP der Netzwerkkarte

Grayskull 13. Apr 2008 13:49

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Okay - probier ich gleich - schonmal Danke - du hast mich schon in meinem Verständnis weitergebracht.

Was genau sagt mir: ServerType=Local

Und was ist eine sinnvolle Modifikation - oder bleibt das so?

mkinzler 13. Apr 2008 13:54

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Vielleicht entscheidet das Programm auch anhand dieses Parameters

DeddyH 13. Apr 2008 13:55

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Das können Dir wohl nur die Programmierer der Software genauer sagen, Du könntest aber mal versuchen, den ServerType in Remote zu ändern.

Grayskull 13. Apr 2008 14:18

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Also bisher hatte ich meistens Fehlermeldungen wie "Das System kann den angegebenen Pfad nicht finden"

Mit Remote heißt es nun "Unable to complete network request to host 192.168.2.62"
EDIT: "Es konnte keine Verbindung hergestellt werden, da der Zielcomputer den Zugriff verweigerte."

AntiViren-Software, Firewall usw. ist alles abgeschaltet. Über das Dateisystem habe ich Zugriff auf meine freigegebenen Ordner.

Da werde noch ein bisschen weiterprobieren. Aber "Remote" scheint demnach an der Stelle verstanden zu werden. Danke.


Was muss mein Firebird Server nun leisten? Classic Server? Muss ich den einfach nur anschmeißen oder die FDB Datei auch laden? Muss ich einen Port angeben hinter ServerIP?

mkinzler 13. Apr 2008 14:21

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Ob ClassicServer oder SuperServer ist eigentlich egal. Der Pfad muss aus Serversicht sein und der Server gestartet sein.

Hansa 13. Apr 2008 14:55

Re: embedded Firebird Datenbank wechseln für Netzwerkanwendu
 
Vorab sind aber noch ein paar andere Fragen zu klären. 8) Du gehst davon aus, dass es sich um embedded FB handelt und hast keinen Kontakt zum Programmierer ? Das ist nicht gut. Offensichtlich soll eine Einzelplatz- in eine Mehrplatz-Version umgewandelt werden ? Und der FB-Server sorgt dann ganz alleine dafür, dass das auch funktioniert ? Liegt das überhaupt im Sinne des Erfinders ? Da sage ich nur : Hollywood. :mrgreen: Jetzt gibt es folgende Möglichkeiten : es geht und die Lizenz sieht das auch so vor. Wäre sehr ungewöhnlich. Netzwerk-Versionen sind immer teurer. Ist das Ganze aber nicht im Sinne des Erfinders, dann wäre es auch ein leichtes, das Vorhaben mit geringstem Aufwand zunichte zu machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz