Zeos und Firebirb --> fbclient15.dll

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Zeos und Firebirb --> fbclient15.dll

Beitrag von mintpc »

Hallo zusammen,

ich habe Firebird 2.1 (und nun 1.5 installiert) und mit Flamerobin eine Datenbank nebst
Tabelle angelegt.
Dann die Komponenten Zeos 6.6.6 stable installiert.

Nun soll laut Tutorial hier auf den Seiten die Komponente ZConnection benutzen und damit die Verbindung zur
Datenbank herstellen.
firebird.bmp
firebird.bmp (355.49 KiB) 2111 mal betrachtet
Mein Objektinspektor sieht so aus:

Nun das Problem (bei Firebird 1.5 und auch 2.1). Man soll das Attribut Connected auf "true" setzen,
dann kommt aber immer die Fehlermeldung:"Dynamic libraries can not be found: fbclient15.dll und fbclient.dll"

Ich habe lange gesucht, dieses Problem taucht immer wieder auf, aber nirgendwo konnte ich eine tatsächliche Lösung finden.

Was ist zu tun?

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von MmVisual »

Man muss die DLL auch in das \Windows\System32 Verzeichnis kopieren.

Ich hatte auch mal versucht Firebird mit Zeos 6.6.6 zu nutzen, hat nicht geklappt. PostgreSQL, MySQL und SQLite hingegen geht Problemlos.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von af0815 »

Ich kopiere die dll nicht ins Systemverzeichnis, wenn ich nicht muß.

Laufzeit Teil (fertiges Programm): DLLs ins Verzeichnis der lauffähigen Exedatei.
Für die IDE: zusätzlich ins verzeichnis wo die Lazarus Exe ist.

Warum: Wird das Programm ausgeführt, so wird im selben verzeichnis wie die Exe gesucht. Macht man die DB innerhalb der IDE auf, so wird auch im Verzeichnis der Exe gesucht, das ist dann aber Lazarus.
Zusätzlich gibt es kein Problem zur Laufzeit, wenn der benutzer zB. eine ander Version der DLL auf seinen rechner installiert, es wird die im Verzeichnis der Exe genommen und nicht die 'falsche' Version.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von mintpc »

Hallo,

vielen Dank für die Antworten. Es klappt tatsächlich erst dann, wenn die fbclient.dll im Verzeichnis
der exe Datei
steht, unter /Windows/System32 reicht nicht.


Aber, mir (als Anfänger in Sachen Datenbank) ist noch nicht ganz klar, was diese fbclient.dll eigentlich ist, bzw. was sie macht.
Kann mir das jemand sagen oder einen Link zum "Erklär-Bär" schicken?

Aber danke schonmal für die Hinweise.

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von Live »

Solche DLL's sind meistens Schnittstellen zwischen der Datenbank, dem Datenbankmanagement und deinem Programm bzw deiner IDE.
Sie beinhalten z.B. Standard-Befehle oder Definitionen, die für jede Art der Anwendung immer gleich sind.
Dein Programm greift im Endeffekt über diese Schnittstelle auf die Datenbank zu.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von mintpc »

Ok! Kapiert. :idea:

Danke für die Antworten.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von mintpc »

Jetzt hab ich aber doch noch eine weitere Frage:
Kann ich einen Pfad zu meiner Datenbank in der Zeos-Komponente "TZConnection"
auch relativ setzen? Einfach den Pfad vorher zu entfernen hat nicht geklappt: also einfach
statt C:\Verzeichnis1\Verzeichnis2\Kunden.FDB ein ..\Kunden.FDB oder Kundn.FDB zu machen.
relativ.bmp
relativ.bmp (55.33 KiB) 2087 mal betrachtet

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von Christian »

@af0815 DLL´s gehören ins Systemverzeichnis und sollten auch nur dort gesucht werden. DLL´s in Programmverzeichnissen oder gar Netzwerklaufwerken geben Schadsoftware super angriffsflächen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Live
Beiträge: 144
Registriert: So 22. Aug 2010, 16:06
OS, Lazarus, FPC: Backtrack 5 RC4 - 64bit Gnome
CPU-Target: 64bit
Wohnort: NRW
Kontaktdaten:

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von Live »

mintpc hat geschrieben:Jetzt hab ich aber doch noch eine weitere Frage:
Kann ich einen Pfad zu meiner Datenbank in der Zeos-Komponente "TZConnection"
auch relativ setzen? Einfach den Pfad vorher zu entfernen hat nicht geklappt: also einfach
statt C:\Verzeichnis1\Verzeichnis2\Kunden.FDB ein ..\Kunden.FDB oder Kundn.FDB zu machen.
relativ.bmp
Klar, du kannst z.b. deine aktuelle Umgebung per Funktion auslesen und daraus dann den Pfad zum Verzeichnis herstellen, es ist zwar nur indirekt relativ,
aber bietet dir denke ich eine gute Option das ganze etwas variabler zu gestalten. Eine mögliche Funktion wäre z.b:

Code: Alles auswählen

function GetApplicationDirectory: string;
begin
  Result := ExtractFilePath(Application.ExeName);
  appdir := Result;
end;
in appdir wird dann z.b. der aktuelle Pfad gespeichert, in der deine Applikation läuft. Du könntest dann z.B. für deinen Datenbank-Pfad angeben:

Code: Alles auswählen

DB.Database:=appdir+'\DB\Kunden.FDB';
oder ähnlich

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von carli »

Christian hat geschrieben:@af0815 DLL´s gehören ins Systemverzeichnis und sollten auch nur dort gesucht werden. DLL´s in Programmverzeichnissen oder gar Netzwerklaufwerken geben Schadsoftware super angriffsflächen.
Dann sollte man aber auf alle Fälle die Software auf einem frisch installierten System ausprobieren, bevor man so etwas veröffentlicht.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von mintpc »

Danke für den Tipp mit den Pfaden, anders scheint's ja nicht zu gehen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Zeos und Firebirb --> fbclient15.dll

Beitrag von af0815 »

Christian hat geschrieben:@af0815 DLL´s gehören ins Systemverzeichnis und sollten auch nur dort gesucht werden. DLL´s in Programmverzeichnissen oder gar Netzwerklaufwerken geben Schadsoftware super angriffsflächen.
Sie können auch zur Applikation gehören - daher in den Installationspfad der Applikation. Dieser ist bei MS (wenn richtig verwendet) per default für den normalen Benutzer nicht beschreibbar. Somit ist das Argument der Angriffsfläche nicht gegeben.
Besonders wenn die DLL in einer bestimmten Version von der Applikation erwartet wird. Was für ein Verhalten würdest Du bei der Firebird-DLL vorschlagen, damit das auch richtig funktioniert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten