Delphi-PRAXiS

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

TurboMagic 15. Aug 2019 18:49

Datenbank: Firebird • Version: >=2.5 • Zugriff über: FireDAC

Firebird Embedded
 
Hallo,

mittels FireDAC kann man ja auch auf die Embedded Variante von Firebird zugreifen.
In einer privaten ANwendung klappt das ganz gut, nur bin ich nicht mehr ganz auf Stand
bezüglich der Limits der aktuellen Embedded Varianten:

1. Haben die inzwischen auch endlich einen Login für die Datenbank bzw. können Zugangsdaten für
diese endlich in der DB selbst gespeichert werden? Früher jedenfalls konnte man mit Embedded
immer ohne Login auf die DB zugreifen.

2. Ist es möglich damit mehrere parallele DB Verbindungen zur selben DB zu haben?

3. Braucht die auch irgendwelche MS C++ Laufzeitbibliotheken die mit installiert werden müssen?
Die Server Varianten hat das ja im Installer, der bei mir (V2.5.x) aber in seltenen Fällen
bei der Installation dieser Runtime zu hängen schien.

Hintergrund ist eine 1-Benutzer Anwendung die aber ggf. aus mehreren Modulen mit separaten
DB-Verbindungen besteht.

Grüße

TurboMagic

mkinzler 15. Aug 2019 20:08

AW: Firebird Embedded
 
zu 1.: Ab 3.0 Ja.Es gibt nun keinen expliziten embedded Client mehr.
zu 2.: Ab 2.5 Ja.
zu 3.: Benötigte Dateien sind Teil des Zip-Archivs.

tsteinmaurer 16. Aug 2019 11:50

AW: Firebird Embedded
 
ad 1): Seit 3.0 können Benutzer/Passwort Informationen in der Datenbank abgelegt werden, aber eine Embedded Connection überprüft auch weiterhin nicht das Passwort, sondern ein etwaiger Benutzername bei der Verbindung wird dann für SQL Privileges hergenommen.
ad 2): Mehrere Verbindungen aus dem selben Anwendungsprozess, der die Firebird Embedded Engine geladen hat, geht immer. Über mehrere Anwendungsprozesse hinweg, da unterscheidet sich 2.5 und 3.0. In 2.5 läuft Embedded in der SuperClassic Architektur, d.h. da geht das auch immer. In 3.0 läuft Embedded in der SuperServer Architektur, welche einen exklusiven Dateisystem-Lock bei der ersten Datenbankverbindung auf der Datenbankdatei auslöst. D.h. Embedded mit 3.0 müßte in firebird.conf auf SuperClassic umkonfiguriert werden, damit auch hier mehrere DB-Verbindungen über mehrere Prozesse hinweg möglich ist. Default = SuperServer, weil diese Architektur den Shared Page-Cache besitzt.
ad 3): Ist im Package dabei.

TurboMagic 17. Aug 2019 18:43

AW: Firebird Embedded
 
Zu 1) Seufz! Wenn der Login nur für die bestimmung von Privilegien benutzt wird, bringt mir das nicht wirklich was

Zu 2) Ok, ich könnte auf SuperClassic umkonfigurieren, die frage ist nur, wie zukunftssicher das dann ist?
Ist das was über deren Pläne an "der Ecke" bekannt?

Zu 3) Die Dateien sind im Package enthalten, ok, aber muss man da was installieren? Der normale Server Installer
tut das und zumindest auf manchen PCs sah das schon so aus als ob es hängt (obwohl es von MS selber ist!)
und ich hab's dann jeweils abgeschossen. Bei erneutem Durchlaufen des Installers war dann alles OK.
Da ich das vermeiden möchte eben die Frage ob im Embedded das in einer Form drin ist, die keine
Installation dieser Dateien erfordert.

Aber danke schon mal für die bisherigen Antworten.

IBExpert 18. Aug 2019 13:18

AW: Firebird Embedded
 
1. es steht dir die Möglichkeit öffen, zusätzliche Mechanismen per database trigger einzubauen, das kann man aber mit geeigneten Tools auch umgehen. Wenn es sicher sein muss, dann bleibt dir bei embedded nur der Weg über die encryption, das ist dann aber sehr sicher, wenn es sauber implementiert ist. Beispiel dazu wie man das mit den Hilfsmitteln in der IBExpert Vollversion machen kann hier
https://www.ibexpert.net/ibe/pmwiki....ptionPluginFB3

2. Nach meiner Einschätzung bleibt Superclassic als auch classic durchaus noch länger verfügbar, aber eine Garantie gibt dir keiner. Für embedded kann mna aber davon ausgehen, das es weiterhin multiprocess connections geben wird, auch wenn das vieleichtirgendwann man anders heisst oder anders funktioniert

3. Die Dateien msvc*.dll müssen entweder im Suchpfad liegen oder eben wie beim zip direkt im Pfad wo auch die fbclient.dll zu finden ist. Installiert muss nicht werden, wenn du das aber installierst, was mit dem installler im system32 verzeichnis gehen würde, werden die in system32 verzeichnis oder in das syswow64 verzeichnis gelegt, als da wo eigentlich solche Systemdlls hingehören. Installieren musst du weder bei embedded noch beim server irgendwas. Firebird läuft auch mit dem Befehl
Code:
firebird.exe -a
als Server ohne jegliche Installation im application mode, dann siehst du unten ein trayicon und es gibt auch keinen Dienst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 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