Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [Firebird] Minimum Client (https://www.delphipraxis.net/179632-%5Bfirebird%5D-minimum-client.html)

MrSpock 21. Mär 2014 07:42

Datenbank: Firebird • Version: 2.x • Zugriff über: FibPlus

[Firebird] Minimum Client
 
Hallo,

für die Version 2.x des Firebird Servers gibt es ja keine ClientInstall Routine mehr. Und es genügt die minimale Client Installation durchzuführen.

Meine Frage ist, weiß jemand welche Fehlermeldung der Client bringt, wenn die Visual Studio runtime files, die in dem oben verlinkten Beitrag aufgelistet werden, fehlen?

RWarnecke 21. Mär 2014 07:53

AW: [Firebird] Minimum Client
 
Meines Wissens reicht es, wenn Du die Embedded Version von dieser Seite herunterlädst und den Inhalt mit ins Programmverzeichnis stellst. Für den Serverzugriff einfach noch die fbembed.dll nach fbclient.dll umbenennen.

pmoegenb 21. Mär 2014 08:14

AW: [Firebird] Minimum Client
 
Zitat:

Zitat von RWarnecke (Beitrag 1252837)
Für den Serverzugriff einfach noch die fbembed.dll nach fbclient.dll umbenennen.

Kann ich mir nicht vorstellen.

In der 32-bit-Variante:

fbclient.dll = 540 KB
fbembed.dll = 3.712 KB

mkinzler 21. Mär 2014 08:33

AW: [Firebird] Minimum Client
 
WEnn man kein lokales Protokoll, also nur über IP verbindet, kann man den embedded nehmen. Die Dll hat halt dann auch den Server "im Bauch".

MrSpock 21. Mär 2014 14:00

AW: [Firebird] Minimum Client
 
Ich dachte, die embedded Version kann nur auf localhost zugreifen!?

Hintergrund meiner Frage ist folgender:

Ich habe eine Firebird Anwendung, die im Netzwerk liegt. Die gds32.dll liegt im Programmverzeichnis. Die meisten Rechner in dem Netzwerk (Win 7, 64 Bit) können problemlos auf die DB zugreifen.

2 neu eingerichtete Win 7 Rechner melden den Fehler:
Zitat:

failed to establish a connection
. Sie versuchen auch über die gds32.dll zuzugreifen, denn als ich diese umbenannt habe, kam sinngemäß die Meldung "gds32.dll nicht gefunden".

Jetzt wollte ich halt wissen, ob das Fehlen der runtime Dateien auf den neu eingerichteten Rechnern eventuell die Ursache sein könnten. :stupid:

mkinzler 21. Mär 2014 14:11

AW: [Firebird] Minimum Client
 
Zitat:

Ich dachte, die embedded Version kann nur auf localhost zugreifen!?
Nein. Bei Netzwerkzugriff verhält er sich wie der "normale" Client. Bei Zugriff über lokales Protokoll, greift er nicht auf einen externer Serverdienst zu, sondern verwendet eine eigene "interne" Serverinstanz.
Schau Dir die Client-Dll mal mit dem dependancy viewer an, dann siehst Du welche andere Dlls referenziert/geladen werden.

Lemmy 21. Mär 2014 14:16

AW: [Firebird] Minimum Client
 
wichtig bei Firebird ist im Grunde nur der verwendete ConnectionString *):

mit der Embedded.DLL und einem lokalen Pfad (c:\....) funktioniert die als lokaler embedded Server. Mit einem TCP-Zugriffspfad (server:c:\...) aber als einfacher Client - wobei dann auf dem Server aber auch eine Server-Instanz laufen muss.

Deshalb würde ich auch "nie" einen Embedded-Server als Client verwenden, wenn die Anwender am Verbindungspfad rumspielen dürfen, das kann nur schief gehen - wenn auf dem Server mit der embedded-DLL mit einem lokalen Zugriffspfad eine Verbindung hergestellt wird, dann kann selbstverständlich niemand anders, insbesondere nicht der eigentliche laufende Server auf die Datenbank verbinden!

Anmerkung: WObei mit der reinen Client.dll (ca. 300 kByte) auch über einen lokalen ConnectionString keine Verbindung aufgebaut werden, wenn nicht ein Server läuft.

RWarnecke 21. Mär 2014 14:41

AW: [Firebird] Minimum Client
 
Hallo Lemmy,

Deinen Beitrag verstehe ich irgendwie nicht ganz.

Ich versuche es mal anhand eines Beispiels zu erklären, wie ich es immer mache. Auf Rechner A setze ich ganz normal einen Super- oder Classic Firebird Server auf, der als Dienst konfiguriert ist. Dabei ist es egal ob Windows oder Linux als Betriebssystem dient. Dann gehe ich an den Client und nehme die Dateien von Embedded-Version, kopiere diese in mein Verzeichnis, benenne die Datei fbembed.dll in fbclient.dll um und und starte dann mein Programm. Ist jetzt der richtige Server und Datenbankpfad hinterlegt funktioniert die Verbindung wunderbar, auch mit mehreren Geräten.

So habe ich es bei Code-Orakel gemacht und mache es auch aktuell für ein Kundenprojekt so. Warum sollte ich hier eine andere Client-DLL nehmen ? :gruebel:

Lemmy 21. Mär 2014 15:56

AW: [Firebird] Minimum Client
 
Hi,

solange Server und CLient wirklich getrennt sind ist das Risiko nicht gegeben - das ist nur dann der Fall, wenn der Server auch gleichzeitig als Client fungiert sprich die Anwendungssoftware installiert ist.

RWarnecke 21. Mär 2014 16:10

AW: [Firebird] Minimum Client
 
Ok, danke. Dann habe ich es jetzt verstanden.

Perlsau 22. Mär 2014 07:22

AW: [Firebird] Minimum Client
 
Zitat:

Zitat von MrSpock (Beitrag 1252897)
Ich dachte, die embedded Version kann nur auf localhost zugreifen!?

Hat sich seit Version 2.0 oder 2.5 oder so geändert. Ich hab hier eine Firebird-basierte Terminverwaltung, die in einem Büro mit Netzlaufwerk ohne Server einwandfrei funktioniert. Die Clientsoftware liegt ebenfalls auf dem Netzlaufwerk. Es gab zwar ein paar Hürden zu überwinden, weil man mit einer Embedded-Version z.B. keine DB-Messages versenden kann, aber inzwischen läuft alles zur vollsten Zufriedenheit der Anwender.

mkinzler 22. Mär 2014 07:44

AW: [Firebird] Minimum Client
 
Die Funktionalität netzwerkbasiert auf eine lokale oder entfernte Serverinstanz zuzugreifen konnte der embedded client schon immer. Ab 2.5 basiert er aber nicht mehr auf dem SuperServer sondern auf der neuen SuperClassic Architektur. Deshalb können nun mehrere Instanzen parallel auf eine Datenbankdatei zugreifen.

Perlsau 22. Mär 2014 07:48

AW: [Firebird] Minimum Client
 
Mußte früher bei Embedded nicht auch die Datenbank-Datei im selben Ordner liegen wie die Client-Anwendung?

mkinzler 22. Mär 2014 07:54

AW: [Firebird] Minimum Client
 
Nein. Der connection string wurde schon immer ausgewertet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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