AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

fbclient.dll korrekt installieren

Ein Thema von Rainer Wolff · begonnen am 6. Jun 2011 · letzter Beitrag vom 6. Jun 2011
Antwort Antwort
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#1

fbclient.dll korrekt installieren

  Alt 6. Jun 2011, 16:05
Hallo,

nachdem ich in der Firebird-Doku gelesen habe, dass die fbclient.dll vorzugsweise im Firebird-Installationspfad liegen soll und nicht ins Systemverzeichnis kopiert werden sollte, frage ich mich, wie die sauberste Installation denn aussehen könnte.

Mein Gedanke war, in meinem Delphi-Programm bei der Initialisierung den FB-Installationspfad aus der Registry zu lesen (HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances lt. Doku) und dann bei der dbx-Treiberinitialisierung die Vendorlib mit dem kompletten Pfad zu setzen.

Aber anscheinend erwartet dbx unbedingt die fbclient.dll und wertet einen Pfad oder eine anders benannte dll bei der Vendorlib gar nicht aus.

Ich kann natürlich eine fbclient.dll von meinem Entwicklungsrechner in mein Programmverzeichnis mit installieren, aber dann muss Firebird-Version und fbclient.dll im Programmverzeichnis immer zusammenpassen.

Oder ich müsste meinem Installationsprogramm beibringen, den Firebird-Pfad in den Suchpfad mit aufzunehmen.

Wer hat andere Ideen?

Gruß Rainer
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: fbclient.dll korrekt installieren

  Alt 6. Jun 2011, 20:59
Hallo Rainer...

mal so dazwischengefragt... Was machst du bei einem Client, der den FB Server nicht installiert hat ? Dort existieren die FB Installations Ordner nicht. Imho gibt es nur 2 Möglichkeiten:
1. die Client DLL im Programm Ordner
2. die Client DLL ins System Verzeichnis

Ich für meinen Teil lege sie immer ins System Verzeichnis. Wenn du mehrere Firebird Versionen parallel betreiben möchtest ist auf dem Entwicklungsrechner der FB Pfad am sichersten.
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: fbclient.dll korrekt installieren

  Alt 6. Jun 2011, 21:23
Hallo Rainer...

mal so dazwischengefragt... Was machst du bei einem Client, der den FB Server nicht installiert hat ? Dort existieren die FB Installations Ordner nicht. Imho gibt es nur 2 Möglichkeiten:
1. die Client DLL im Programm Ordner
2. die Client DLL ins System Verzeichnis

Ich für meinen Teil lege sie immer ins System Verzeichnis. Wenn du mehrere Firebird Versionen parallel betreiben möchtest ist auf dem Entwicklungsrechner der FB Pfad am sichersten.
Ich bin mir nicht ganz sicher, aber gibt es nicht z.B. bei den IBDAC-Komponenten die Möglichkeit, eine dll (inkl. Pfad) anzugeben? Macht natürlich aber nur Sinn, wenn sicher ist, dass die Datei dort mit Sicherheit existiert.
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: fbclient.dll korrekt installieren

  Alt 6. Jun 2011, 22:29
Hallo,

ich für meinen Teil lege die DLL meiner serverbasierten Programme immer ins Programmverzeichnis, um zu vermeiden, bestehenden Installationen ins Gehege zu kommen.

Außerdem vermeide ich es, dass andere Programme die DLL, die für mein Programm notwendig ist mit einer älteren Version überschreiben.

@scrat1979: Ja, man kann bei den Connections eine DLL inkl. Pfad angeben. Ob die DLL dann auch existiert, lässt sich ja bei Programmstart überprüfen (wenn z. B. die Pfadangabe aus Programmeinstellungen ausgelesen wird).




Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty

Geändert von FBrust ( 6. Jun 2011 um 22:35 Uhr)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#5

AW: fbclient.dll korrekt installieren

  Alt 6. Jun 2011, 22:49
Was spricht eigentlich dagegen, bei der Installation den Suchpfad der spezifischen Applikation zur DLL unter
Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
(+ \Project.exe\Path) einzutragen und die DLL dann im eingetragenen (Unter)-Verzeichnis der Applikation abzulegen?

Ausserdem gibt es ja auch noch die WinAPI-Funktion SetDllDirectory, die aber ja nur für dynamisch geladene DLLs geht. Was bei der fbclient.dll ja möglich sein sollte.

Was auch noch eine "nette" Variante ist, die ich schon mal gemacht habe:
Die fbclient.dll als Resource in die EXE kompilieren oder in einem eigenen VFS ausliefern und über das BoxedApp SDK diese dann beim Programmstart als virtuelle Datei im Speicher erzeugen, die dann dynamisch geladen wird.
Ok, ich geb zu, diese Methode ist krank, aber so kann man Firebird in einem "Single EXE"-Programm ausliefern.

Geändert von blackfin ( 6. Jun 2011 um 23:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:18 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