Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Delphi 2010 + Firebird Embedded (https://www.delphipraxis.net/146417-delphi-2010-firebird-embedded.html)

Spessi 19. Jan 2010 16:28

Datenbank: Firebird Embedded • Version: 2.1.3 • Zugriff über: DBExpress

Delphi 2010 + Firebird Embedded
 
Hallo Delphi-Praxis,
nachdem ich mir Delphi 2010 zugelegt habe wollte ich eigentlich sofort loslegen mit dem Verbinden auf eine Firebird-Datenbank. Nur eine einzige Sache irritiert mich momentan noch etwas. Habe mir den Firebird Embedded Server runtergeladen, die fbembed.dll umgenannt zu fbclient.dll und ins Exe-Verzeichnis kopiert. Allerdings fehlt mir laut ObjektInspektor nun noch eine DLL, die als "LibraryName" bezeichnet wird (Wert: "dbxfb.dll"). Wo genau finde ich diese?

Liebe Grüße

hoika 19. Jan 2010 16:46

Re: Delphi 2010 + Firebird Embedded
 
Hallo,

die gibt es in Delphi Enterprise / Architect.

Hast du die Proff ?



Heiko

Spessi 19. Jan 2010 16:56

Re: Delphi 2010 + Firebird Embedded
 
Vielen Dank für die Antwort - kaum sucht man richtig, schon hat man die Datei gefunden. :)
Für alle, die genauso blind sind wie ich, der Pfad lautet: C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin.


Grüße

Edit:
Gleich noch ne Frage hinterher:
Jetzt funktioniert alles soweit, aber nur dann, wenn ich SQLConnection1.connected:=true; in der OnCreate-Procedure auf enabled setze. Sobald ich das aber im OI auf Enabled setze kommt folgende Fehlermeldung (nach der Benutzername/Passwort Abfrage):

---------------------------
Fehler
---------------------------
Cannot load fbclient.DLL library (error code 126). The fbclient.DLL library may be missing from the system path or you may have an incompatible version of the library installed.
---------------------------
OK Details >>
---------------------------

Hat noch jemand ne Idee woran das liegen könnte?
Im Projektordner liegen nun folgende Dateien von Firebird:
- fbclient.dll (ursprünglich fbembedded, aber zu fbclient.dll umbenannt)
- firebird.conf
- firebird.msg
- icudt30.dll
- icuuc30.dll



Liebe Grüße

hoika 19. Jan 2010 17:45

Re: Delphi 2010 + Firebird Embedded
 
Hallo,

könnte viell. daran liegen,
das die DLL im Arbeitsverzeichnis gesucht wird.

Das ist bei der IDE ja ien anderes als bei der Exe.

Ich würde die Dateien mal in ein Verzeichnis packen,
was im PATH liegt.

Unter D7 hatte ich das Problem allerdings nicht.



Heiko

neo4a 19. Jan 2010 17:46

Re: Delphi 2010 + Firebird Embedded
 
Die embeded FB-Variante eignet sich nicht für die IDE. Selbst wenn Du es hinbekommst, die Dateien in den richtigen Ordner zu kopieren (Tipp: bin-Ordner der bds32.exe).

Ich empfehle Dir, den FB als Server zu installieren. In der IDE setzt Du dann die Connection-Parameter zum Server (localhost:c;\...), zur Laufzeit nimmst Du einfach den Dateinamen. Das funktioniert prima parallel und nebenbei kannst Du gleich die Netzwerkvariante Deiner App. erstellen ;)

--
Andreas

Die Muhkuh 19. Jan 2010 17:49

Re: Delphi 2010 + Firebird Embedded
 
Zitat:

Zitat von neo4a
Die embeded FB-Variante eignet sich nicht für die IDE.

Papperlapapp, geht wunderbar mit FB embeded. Entweder die DLLs in System32 packen oder in den Ordner, in dem die kompilierte Anwendung liegt.

Ich greife allerdings per AnyDAC drauf zu, geht wunderbar.

Spessi 19. Jan 2010 17:58

Re: Delphi 2010 + Firebird Embedded
 
Wie oben schon erwähnt, sind ja alle nötigen Firebird DLLs im gleichen Ordner in dem auch die Exe-Datei ist. Da wollte der OI aber nicht wie fbclient.dll finden. Hab sie natürlich auch schon im system32 Ordner gehabt, da fand er sie allerdings auch nicht. Letztendlich "funktionierte" die Methode von neo4a. Anführungszeichen, weil es auch nicht so funktioniert wie ich es mir vorstelle: Der OI sucht jetzt die Datenbank auch im /bin Ordner von Delphi. Sollte sich aber mit Verwenden von absoluten Pfaden beheben lassen. Darf man dann nur nicht vergessen wieder zurückzuändern, wenn man die Datei mal weitergeben sollte ;-)

neo4a 19. Jan 2010 18:02

Re: Delphi 2010 + Firebird Embedded
 
Bitte, Muhkuh, plapper weniger und übe Dich mehr darin, sinnentnehmend zu lesen: Dass sich etwas nicht eignet, heißt nicht, dass es nicht "geht".

Glaube mir, manchmal muss man Datenbankanwendungen auch debuggen und dazu parallel auf die DB zugreifen können.

BTW, Deine "Lösung" im System32-Verzeichnis ist sehr unsauber: "geht" vielleicht, ist aber ungeeignet ;)

--
Andreas

Spessi 19. Jan 2010 18:11

Re: Delphi 2010 + Firebird Embedded
 
Zitat:

Zitat von neo4a
Glaube mir, manchmal muss man Datenbankanwendungen auch debuggen und dazu parallel auf die DB zugreifen können.

Das ist wohl wahr, allerdings wird es sich bei mir nur um eine einfache Film-Verwaltung handeln, da wird es hoffentlich nicht so viel zum debuggen geben ;-) Klar, vorerst auf einem lokalen Server programmieren würde vermutlich auch besser sein, aber ich denke in diesem Fall ist das schon etwas overload ;-)
Zitat:

Zitat von neo4a
BTW, Deine "Lösung" im System32-Verzeichnis ist sehr unsauber: "geht" vielleicht, ist aber ungeeignet ;)

Diese Lösung ging ja sowieso nicht - ich dachte auch erst, dass es im System32-Ordner funktionieren müsste, da es ja auch im Suchpfad von Delphi liegt. Aber genausogut liegt auch der Projekt-Ordner in den Suchpfaden von Delphi, dort findet er die Datei ja auch nicht. Letztendlich funktioniert es so, dass, wie du sagtest, man die fbclient.dll + Abhängigkeiten im /bin Ordner speichern, und dann im OI den Pfad zur Datenbank absolut, nicht relativ, angeben muss. Darf dann selbstverständlich nach der Entwicklungsphase nicht mehr absolut drin stehen.

Grüße

hoika 19. Jan 2010 18:40

Re: Delphi 2010 + Firebird Embedded
 
Hallo,

Zitat:

Ich empfehle Dir, den FB als Server zu installieren. In der IDE setzt Du dann die Connection-Parameter zum Server (localhost:c;\...), zur Laufzeit nimmst Du einfach den Dateinamen. Das funktioniert prima parallel und nebenbei kannst Du gleich die Netzwerkvariante Deiner App. erstellen

Neeeeeeee ;)


Wenn ich beides Testen muss, mache ich es anders.

Server-Test
- FB wird als Anwendung gestartet (fbserver.exe -a)
- embedded DLL umbenennen

Embedded-Test
- FBServer beenden
- embedded DLL benutzen


Damit lassen sich auch schön mehrere FB-Versionen testen.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Seite 1 von 2  1 2      

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