AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TFDIBRestore findet fbclient.dll nicht?

TFDIBRestore findet fbclient.dll nicht?

Ein Thema von TurboMagic · begonnen am 11. Feb 2020 · letzter Beitrag vom 13. Feb 2020
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
613 Beiträge
 
Delphi 10.3 Rio
 
#1

TFDIBRestore findet fbclient.dll nicht?

  Alt 11. Feb 2020, 15:44
Datenbank: Firebird • Version: 2.5 • Zugriff über: FireDAC
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.521 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: TFDIBRestore findet fbclient.dll nicht?

  Alt 11. Feb 2020, 15:52
32Bit oder 64Bit?

Bei 64Bit Windows liegt die 64Bit Version in C:\Windows\System32 und die 32Bit Version unter SYSWOW64
Markus Kinzler
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
613 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: TFDIBRestore findet fbclient.dll nicht?

  Alt 11. Feb 2020, 15:59
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
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
613 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: TFDIBRestore findet fbclient.dll nicht?

  Alt 11. Feb 2020, 16:19
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
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.554 Beiträge
 
Delphi XE4 Professional
 
#5

AW: TFDIBRestore findet fbclient.dll nicht?

  Alt 11. Feb 2020, 16:30
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.
Heiko

Geändert von hoika (11. Feb 2020 um 23:49 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
613 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: TFDIBRestore findet fbclient.dll nicht?

  Alt 11. Feb 2020, 23:39
Ich habe schon nach einer Möglichkeit den anzugeben geswcuht, aber zumindest keine offensichtliche gefunden.

Ich habe dazu jetzt auch diesen QP Report erstellt: https://quality.embarcadero.com/browse/RSP-27628
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.554 Beiträge
 
Delphi XE4 Professional
 
#7

AW: TFDIBRestore findet fbclient.dll nicht?

  Alt 13. Feb 2020, 16:44
Hallo,
also hier
http://docwiki.embarcadero.com/Libra...e.TFDIBRestore

steht das

FDIBRestore1.DriverLink := FDPhysFBDriverLink1; und dazu habe ich das
gleich oben steht VendorLib
Den Wert würde ich einfach erst mal auf 'fbclient.dll' setzen.

https://entwickler-ecke.de/viewtopic.php?p=713941
Heiko

Geändert von hoika (13. Feb 2020 um 16:48 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
613 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: TFDIBRestore findet fbclient.dll nicht?

  Alt 13. Feb 2020, 17:20
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf