Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird embedded vs. Server (https://www.delphipraxis.net/167953-firebird-embedded-vs-server.html)

user0815 27. Apr 2012 07:23

Datenbank: Firebird • Version: 2.0.7 • Zugriff über: UniDAC

Firebird embedded vs. Server
 
Hallo,

ich habe hier eine EXE mit TInterbaseUniProvider sowie einer TUniConnection.
Die Connection zur DB baue ich wie folgt auf.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  UniConnection.Server := 'localhost';
  UniConnection.Database := ExtractFilePath(ParamStr(0)) + 'employee.fdb';
  UniConnection.Connected := true;

  if not UniConnection.Connected then exit;

  UniQuery1.Active := UniConnection.Connected;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  UniConnection.Server := '';
  UniConnection.Database := ExtractFilePath(ParamStr(0)) + 'employee.fdb';
  UniConnection.Connected := true;

  if not UniConnection.Connected then exit;

  UniQuery1.Active := UniConnection.Connected;
end;
Im (Debug) EXE Verzeichnis liegen die folgenden Dateien: employee.fdb, fbclient.dll, firebird.conf, firebird.msg, FirebirdTest.exe, ib_util.dll, icudt30.dll, icuin30.dll, icuuc30.dll, Microsoft.VC80.CRT.manifest, msvcp80.dll, msvcr80.dll

Lokal habe ich hier auf dem Win7 Rechner den Firebird Server als Dienst laufen. Drücke ich auf Button1 so werden mir die Daten einer Tabelle angezeigt.
Drücke ich auf Button2 so erhalte ich die nachfolgende E:Exception Meldung: unavailable database

Kopiere ich alle Daten aus diesem Verzeichnis & starte die EXE auf einem anderen PC (wo kein Firebird Server läuft) so werden mir die Daten bei Button2 Click angezeigt.

Ich dachte man kann auf einem Rechner sowohl die Server als auch die Embedded Version ausführen.
Was mache ich falsch ?

RWarnecke 27. Apr 2012 07:33

AW: Firebird embedded vs. Server
 
Wenn ich es noch richtig weiß, wird glaube ich primär auf den Server zugegriffen, wenn dieser gestartet ist oder als Dienst läuft.

mkinzler 27. Apr 2012 08:02

AW: Firebird embedded vs. Server
 
Beim embedded (Server) Client wird beim Zugriff über lokales Protokoll anstatt auf den Server direkt auf die Datenbankdatei zugegriffen. Beim Zugriff über Netzwerkprotokoll ( Server=loclahost) wird auf den Server(dienst) zugegriffen. Da der embedded Client von Firebird < 2.5 auf der SuperServer-Architektur basiert, wird exklusiver Zugriff auf die datenbankdatei benötigt. Das aber der Server schon darauf zugreift wird das nicht möglich sein. Ab Firebird 2.5 wird die SuperClassic Architektur verwendet, hier geht der parallele Zugriff.

user0815 27. Apr 2012 09:17

AW: Firebird embedded vs. Server
 
Danke für die Antworten.

Anscheinend muss der Dienst nur vorhanden sein.
"Button2Click" funktioniert auch nicht wenn ich den Dienst manuell beende oder deaktiviere.

mkinzler 27. Apr 2012 11:18

AW: Firebird embedded vs. Server
 
Komsich. Was für ein Fehler wird genau angezeigt/geloggt?

user0815 27. Apr 2012 11:31

AW: Firebird embedded vs. Server
 
Wenn ich den Dienst beende dann erhalte ich jeweils die nachfolgenden E:Exception Meldung:

Button2Click:
"unavailable database"

anschließend Button1Click (ist ja auch logisch ohne Dienst):
Unable to complete network request to host "@1".
Failed to establish a connection.
Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.

mkinzler 27. Apr 2012 11:33

AW: Firebird embedded vs. Server
 
Un in der Logdatei?

Lemmy 27. Apr 2012 12:05

AW: Firebird embedded vs. Server
 
HI,

was für ne fbClient.dll wird denn verwendet? die Client.DLL vom Server oder eine umbenannte fbembedded.dll?

Grüße

user0815 27. Apr 2012 12:25

AW: Firebird embedded vs. Server
 
LOG: Anwendung gestartet + getestet, dann Dienst beendet und Anwendung nochmal gestartet + getestet.

Code:

XXXXX (Client)   Fri Apr 27 13:12:02 2012
   Guardian starting: "J:\Program Files (x86)\Firebird\bin\fbserver.exe"

XXXXX (Client)   Fri Apr 27 13:12:58 2012
   "J:\Program Files (x86)\Firebird\bin\fbserver.exe": normal shutdown

XXXXX (Client)   Fri Apr 27 13:13:12 2012
   INET/inet_error: connect errno = 10061

XXXXX (Client)   Fri Apr 27 13:13:15 2012
   INET/inet_error: connect errno = 10061
Ist eine umbenannte fbembed.dll zu fbclient.dll (Dateiversion: 2.5.1.26351 aus 32-bit Embedded)
Sollte doch keine Probleme trotz Win7 64bit geben

mkinzler 27. Apr 2012 12:29

AW: Firebird embedded vs. Server
 
Es wird ein Netzprotokoll verwendet, dass veranlasst den Guardian, den Server zu starten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr.
Seite 1 von 2  1 2      

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