![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: FireDAC
TFDIBRestore findet fbclient.dll nicht?
Hallo,
seit heute hab' ich ein komisches Problem. Meine Delphi 10.3.3 Win32 Anwendung benutzt TFDIBBackup zum Erzeugen eines Backups einer Firebird Datenbank. Das klappt. Nur wenn ich TFDIBRestore benutzen will, was vor ein paar Tagen in dem Programm auch schon ging, (habe zwischenzeitlich auf 10..3.3 aktualisiert) bekomme ich immer diese Fehlermeldung: [FireDAC][Phys][FB]-314. Cannot load vendor library [fbclient.dll or fbembed.dll]. Das angegebene Modul wurde nicht gefunden Hint: check it is in the PATH or application EXE directories, and has x86 bitness. Kopiere ich diese fbclient.dll aus dem bin Verzeichnis der FB Installation in den Ordner wo meine exe liegt klappt es. Was auch nicht funktioniert ist diese nach C:\Windows\System32 zu kopieren. Warum findet die Backup Komponente die fbclient.dll und die Restore nicht? Beide werden im Code gleich eingestellt. In QP hab' ich auch keinen entsprechenden Report gefunden. |
AW: TFDIBRestore findet fbclient.dll nicht?
32Bit oder 64Bit?
Bei 64Bit Windows liegt die 64Bit Version in C:\Windows\System32 und die 32Bit Version unter SYSWOW64 |
AW: TFDIBRestore findet fbclient.dll nicht?
Danke schon mal dafür!
Kopiere ich die da rein funktioniert es. Nur bleiben Fragen offen: 1. Warum klappt TFDIBBackup, aber nicht das Restore wenn die Datei nicht auch dort ist? 2. Wenn ich in meinem Installationsprogramm (InnoSetup) den Firebird Installer mit drin habe rufe ich den silent auf, u.a. mit Parameter /COPYFBCLIENT Das sollte doch eigentlich die fbclient.dll in diesen System-Ordner kopieren, oder liege ich da falsch? Warum hat es das nicht getan? Grüße TurboMagic |
AW: TFDIBRestore findet fbclient.dll nicht?
Ok, folgender Lösungsansatz funktioniert, sollte meiner Meinung nach aber eigentlich nötig sein:
- GetCurrentDir merken - SetCurrentDir auf das Firebird Verzeichnis setzen (das kann per Registry Eintrag ermittelt werden) - Backup oder Restore auslösen - SetCurrentDir auf das gemerkte zurücksetzen Grüße TurboMagic |
AW: TFDIBRestore findet fbclient.dll nicht?
Hallo,
den Pfad der Client-Dll müsste man in der Komponente eigentlich eingeben können. Vielleicht steht er ja in der Backup-Komponente drin und im Restore nicht. |
AW: TFDIBRestore findet fbclient.dll nicht?
Ich habe schon nach einer Möglichkeit den anzugeben geswcuht, aber zumindest keine offensichtliche gefunden.
Ich habe dazu jetzt auch diesen QP Report erstellt: ![]() |
AW: TFDIBRestore findet fbclient.dll nicht?
Hallo,
also hier ![]() steht das
Delphi-Quellcode:
und dazu habe ich das
FDIBRestore1.DriverLink := FDPhysFBDriverLink1;
gleich oben steht VendorLib Den Wert würde ich einfach erst mal auf 'fbclient.dll' setzen. ![]() |
AW: TFDIBRestore findet fbclient.dll nicht?
Hallo,
naja, das mit dem DriverLink stimmt schon, nur ist ieser konfiguriert und ich denke auf die exakt selbe Art und weise wie in meiner Backup Klasse (die erben beide von einer Basisklasse, welche diesen DriverLink vorbereitet). Der Restore Vorgang liefert ja auch Log-Datei die eindeutig von der fbclient.dll oder fbembed.dll (oder wie die genau heißt) sprechen! Ich denke also schon, dass er die sucht, sonst würde es ja nicht funktionieren, wenn ich den Pfad mittels SetCurrentDir setze. Evtl. ist beim DriverLink (kann das gerade schlecht prüfen) aber das VendorHome oder wie das Verzeichnis auch immer heißt nicht richtig gesetzt. Dadurch sucht er dann im aktuellen Pfad. Das wäre noch untersuchungswürdig. Grüße TurboMagic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr. |
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