Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird 3 embedded "unavailable database" (https://www.delphipraxis.net/197115-firebird-3-embedded-unavailable-database.html)

mber 18. Jul 2018 15:54

Datenbank: Firebird • Version: 3.0 • Zugriff über: FireDAC

Firebird 3 embedded "unavailable database"
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

ich tüftle jetzt schon ne ganze Weile an einer embedded Version von Firebrid 3.0 rum und bekomme über FireDAC immer den Fehler "unavailable database".
Der Zugriff über einen Server auf die gleiche Datenbank funktioniert. Das Problem muss also speziell mit der Konfiguration der embedded Variante zusammenhängen.

Ich teste es derzeit mit einem Minimalprojekt (32bit Delphi 10.2 Tokyo), das im wesentlichen aus einer TFDConnection und einem TFbPhysFbDriverLink und einem Button besteht, der nichts weiter macht als die connection zu öffnen.
Die gesamte Firebird-3.0.3.32900-0_Win32.zip Datei wurde in das Verzeichnis unterhalb des Projekts in FB30\bin entpackt. Die einzige Änderung welche an der Konfiguration vorgenommen wurde ist:
In firebird.conf wurde folgendes gesetzt um ausschließlich embedded zuzulassen: Providers = Engine12
Beim überprüfen ob die richtigen dlls geladen werden sehe ich, dass die fbclient.dll aus FB30\bin geladen wird und anschließend auch engine12.dll aus FB30\bin\plugins .
Egal welche Datei ich als Datenbank angeben, egal ob diese Datei existiert oder nicht, bekomme ich die gleiche Fehlermeldung.

Kennt jemand dieses Problem oder kann mir einen Tipp geben wie ich das Problem weiter eingrenzen kann?

Viele Grüße
Matthias

hoika 18. Jul 2018 17:40

AW: Firebird 3 embedded "unavailable database"
 
Hallo,
wie heißt denn Dein Connection-String?

Der darf z.B. kein localhost enthalten.
-> Hm, habe das erste Bild übersehen ...

Kennst Du das hier schon?
http://www.ibphoenix.com/files/Embedded_fb3.pdf

mkinzler 18. Jul 2018 17:55

AW: Firebird 3 embedded "unavailable database"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ist embedded true?

mber 18. Jul 2018 18:35

AW: Firebird 3 embedded "unavailable database"
 
@hoika
danke, das .pdf kenn ich schon.

@mkinzler
embedded ist auf true gesetzt.
hatte es aber auch schon testweise entfernt, leider ohne dass sich am Verhalten etwas geändert hat.

IBExpert 18. Jul 2018 19:09

AW: Firebird 3 embedded "unavailable database"
 
probier am besten erst mal mit isql auf deine db zu kommen, wenn das schon nicht geht ist der
häufigste mir bekannte fehler auf neu aufgesetzten systemen, das der kram aus dem system32
verezichnis im zip file noch mal explizit installiert werden sollte, weil der dann vermutlich
noch nirgendwo im suchpfad ist (msvcrt*dll))

mber 19. Jul 2018 10:48

AW: Firebird 3 embedded "unavailable database"
 
Der Zugriff auf die Datenbank über isql funktioniert.
Die msvc*100.dlls werden von firebird gleich mitgeliefert und auch geladen.

Da ich einfach nicht weiter komme hab ich das Projekt mal gezipt und hochgeladen. Ist 13MB groß, daher kann ichs hier leider nicht anhängen.
FB30embedTest.zip

Es ist auch der FB30 Ordner enthalten, der die gesamte Firebird-3.0.3.32900-0_Win32.zip enthält. Nur die .config wurde geändert. Ich weiss, dass nicht alles daraus für die embedded Version notwendig ist, auf diesen Test sollten das keine Auswirkung haben.

Viele Grüße
Matthias

Delphi.Narium 19. Jul 2018 11:46

AW: Firebird 3 embedded "unavailable database"
 
Zugriff auf die DB funktioniert mit FlameRobin problemlos.

Username = sysdba, Passwort = masterkey

Nimmt man in FlameRobin allerdings die Anmeldedaten aus dem Programm, dann scheitert der Zugriff.

Und schaut man mal in die Datenbank, so stellt man fest, dass es den in den Anmeldedaten angegebenen User nicht gibt.

Von daher halte ich die Fehlermeldung vielleicht nicht für sehr aussagekräftig (in Bezug auf die konkrete Fehlerursache), jedoch für durchaus sinnvoll.

Dass das Programm den Zugriff auf die Datenbank verweigert ist also gerechtfertigt.

Für den angegebene User ist die Datenbank nicht erreichbar, es fehlt allerdings eine Angabe zum Warum.

mber 19. Jul 2018 13:52

AW: Firebird 3 embedded "unavailable database"
 
Hallo,

es scheint ein Problem mit FireDAC und Firebird 3 embedded zu sein.
Ich hab jetzt Zeos als alternative Datenbankzugriffskomponente installiert und diese funktioniert mit genau der firebird 3 embedded version, die unter FireDAC einen Fehler liefert. Configs etc sind dabei unverändert.

Viele Grüße
Matthias

Delphi.Narium 19. Jul 2018 14:00

AW: Firebird 3 embedded "unavailable database"
 
Und mit Zeos funktioniert der Zugriff trotz Anmeldung mit einem nichtexistierenden User?

Das wäre für mich eindeutig ein Fehler.

Frickler 19. Jul 2018 15:51

AW: Firebird 3 embedded "unavailable database"
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1407921)
Und mit Zeos funktioniert der Zugriff trotz Anmeldung mit einem nichtexistierenden User?

Das wäre für mich eindeutig ein Fehler.

Embedded braucht doch überhaupt keinen Usernamen. Wo soll der auch gespeichert werden, die Security-Database ist doch gar nicht mit dabei.... da kannste Dich anmelden als User "bla" Passwort "fasel" und es geht auch.

Delphi.Narium 19. Jul 2018 16:47

AW: Firebird 3 embedded "unavailable database"
 
Dann möchte aber schon wissen, wo der Fehler herkommt, die Datenbankkomponenten wechseln ist dann leider nicht die beste Möglichkeit, auch wenn die (momentan) einzig funktionierende.

Hab' leider keine passende Delphiversion, um da entsprechend forschen zu können :-(

mkinzler 19. Jul 2018 17:26

AW: Firebird 3 embedded "unavailable database"
 
Zitat:

Zitat von Frickler (Beitrag 1407932)
Zitat:

Zitat von Delphi.Narium (Beitrag 1407921)
Und mit Zeos funktioniert der Zugriff trotz Anmeldung mit einem nichtexistierenden User?

Das wäre für mich eindeutig ein Fehler.

Embedded braucht doch überhaupt keinen Usernamen. Wo soll der auch gespeichert werden, die Security-Database ist doch gar nicht mit dabei.... da kannste Dich anmelden als User "bla" Passwort "fasel" und es geht auch.

Bei FireBird <3 benötigte man kein gültiges Passwort. Benutzerrechte konnten aber angelegt werden. Ab FB3 kann man auch bei embedded einen Security-Datenbank konfigurieren ( ohne, eigene, in Datenbank)

hoika 19. Jul 2018 17:56

AW: Firebird 3 embedded "unavailable database"
 
Hallo,
hast Du dir das hier auch schon durchgelesen?
http://docwiki.embarcadero.com/RADSt...ebird_(FireDAC)

Da steht u.a., das man eben nicht die fbclient nehmen soll.

haentschman 20. Jul 2018 08:06

AW: Firebird 3 embedded "unavailable database"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P

...da steht nix außer:
Zitat:

Diese Seite enthält momentan noch keinen Text...
:zwinker:

mber 20. Jul 2018 08:18

AW: Firebird 3 embedded "unavailable database"
 
Zitat:

Zitat von hoika (Beitrag 1407967)
Hallo,
hast Du dir das hier auch schon durchgelesen?
http://docwiki.embarcadero.com/RADSt...bird_(FireDAC))

Da steht u.a., das man eben nicht die fbclient nehmen soll.

Du meinst den Hinweis auf fbemed.dll?
Firebird 3 hat keine extra embedded dll mehr sondern das ist jetzt in der fbclient.dll integriert und zwar so dass bei Bedarf die Datenbankengine als plugin nachgeladen wird.

Kostas 20. Jul 2018 08:19

AW: Firebird 3 embedded "unavailable database"
 
Doch, vom Link auch die letzte Klammer mitnehmen. :-)

Zitat:

Zitat von haentschman (Beitrag 1408038)
Moin...:P

...da steht nix außer:
Zitat:

Diese Seite enthält momentan noch keinen Text...
:zwinker:


haentschman 20. Jul 2018 08:21

AW: Firebird 3 embedded "unavailable database"
 
Für solche Rätsel ist es eindeutig zu früh... :zwinker: 8-)

Frickler 20. Jul 2018 08:39

AW: Firebird 3 embedded "unavailable database"
 
Zitat:

Zitat von mber (Beitrag 1408041)
Du meinst den Hinweis auf fbemed.dll?
Firebird 3 hat keine extra embedded dll mehr sondern das ist jetzt in der fbclient.dll integriert und zwar so dass bei Bedarf die Datenbankengine als plugin nachgeladen wird.

Genau. Und der Bedarf tritt ein wenn man a) mit firebird.conf rumhantiert (hab ich nie gemacht) oder b) die Datenbank einfach ohne IP-Adresse und Port anspricht, nur über den Pfad (Hinweis: ich nutze UniDAC). Dafür muss außer der fbclient.dll noch die engine12.dll da sein (in einem Unterordner namens "plugins").
Die Minimalkonfiguration, die sich bei mir herauskristallisiert hat, besteht aus:
Im Ordner der Anwendung: fbclient.dll, firebird.msg (für die Fehlertexte), ib_util.dll, icudt52.dll, icudt52l.dat, icuin52.dll, icuuc52.dll, msvcp100.dll, msvcr100.dll. Dann ein Unterordner "plugins" mit der engine12.dll und ein Unterordner "intl" mit fbintl.dll und fbintl.conf.

mber 20. Jul 2018 11:23

AW: Firebird 3 embedded "unavailable database"
 
Nachdem die selbe firebird embedded Version mit anderen Zugriffskomponenten funkioniert (Zeos,Ibo) muss das Problem bei FireDAC liegen. Ich vermute einen Bug.

Hab einen case bei embarcadero eröffnet. Mal schauen ob die etwas Licht in die Sache bringen können.


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