Firebird embedded

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Benutzeravatar
Maddias
Lazarusforum e. V.
Beiträge: 41
Registriert: Mo 29. Apr 2019, 09:28
OS, Lazarus, FPC: Windows 11, Lazarus 3.8, FPC 3.2.2
Wohnort: Randwick, NSW, Australien
Kontaktdaten:

Firebird embedded

Beitrag von Maddias »

Es gibt wirklich keine Notwendigkeit eine SQLite oder MariaDB zu verwenden, wenn man Firebird Embedded kennt:
https://wiki.freepascal.org/Firebird_embedded

Salut,
Mathias

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2805
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Firebird embedded

Beitrag von m.fuchs »

Kurze Frage, keine Kritik:

Was sind denn die Vorteile gegenüber SQLite? Firebird embedded scheint ja deutlich größer zu sein und benötigt auch mehr als eine .dll (laut dem Wiki-Eintrag).

Kann man direkt von FB embedded zur Server-Variante wechseln? Das wäre ja ein Argument weil die Skalierung einfacher ist.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
Maddias
Lazarusforum e. V.
Beiträge: 41
Registriert: Mo 29. Apr 2019, 09:28
OS, Lazarus, FPC: Windows 11, Lazarus 3.8, FPC 3.2.2
Wohnort: Randwick, NSW, Australien
Kontaktdaten:

Re: Firebird embedded

Beitrag von Maddias »

Gute Frage, Michael.

Als PASCAL Entwickler sind wir froh um all die Datentypen, die PASCAL anbietet oder auch verlangt.

Firebird ist die Datenbank mit den Datentypen, die man braucht:
https://firebirdsql.org/manual/migratio ... types.html
https://firebirdsql.org/file/documentat ... types.html

Auch das Concurrency Handling hebt sich von anderen relationalen Datenbanken ab:
A not-so-very technical discussion of Multi Version Concurrency Control.

Salut,
Mathias

Joh
Lazarusforum e. V.
Beiträge: 280
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Firebird embedded

Beitrag von Joh »

m.fuchs hat geschrieben: So 8. Sep 2024, 00:38 Kann man direkt von FB embedded zur Server-Variante wechseln? Das wäre ja ein Argument weil die Skalierung einfacher ist.
Ja.
Firebird Embedded ersetzt komplett den Server, ist für eine Applikation sehr performant und kann 1:1 durch eine andere Server-Verbindung ersetzt werden.
just my two Beer

Joh
Lazarusforum e. V.
Beiträge: 280
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Firebird embedded

Beitrag von Joh »

Firebird 4.0 Embedded besteht unter Windows aus folgenden Dateien:

Code: Alles auswählen

.\fbclient.dll
.\ib_util.dll
.\IDPLicense.txt
.\plugins\engine13.dll
edit: Windows erwähnt
just my two Beer

charlytango
Beiträge: 1058
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Firebird embedded

Beitrag von charlytango »

Just my 2 cents....

Bisher hatte ich mit Firebird immer schon irgendwelche Troubles und habe mich immer geärgert dass SQL Beispiele von Lazarus sehr oft gegen Firebird gingen, das ich nicht hatte und auch nicht installieren wollte.
Dabei hatten die Entwickler der Beispiele auch freundlicherweise immer eine Firebird-Beispiel-DB vorausgesetzt, die ich auch nicht hatte.
All das gemeinsam mit früheren Erfahrungen, noch aus Borland-Zeiten, hat einfach dazu geführt dass ich FB nicht wirklich mag.

Mit SQLite kopiere ich unter Windows eine DLL ins richtige Verzeichnis und gut ist es. Unter anderen Betriebssystemen ist es meistens auch schon vorinstalliert.

Schön dass FB einen besonderen Locking-Mechanismus zu haben scheint, aber damit skaliert es auch nur im FB-Universum und darauf hatte bisher kein Kunde Bock.

Ich denke, dass die Einsatzstatistik mich da auch in etwa bestätigt:

Code: Alles auswählen

https://db-engines.com/de/ranking/relational+dbms
wie gesagt... nur meine 2 cents

Benutzeravatar
Zvoni
Beiträge: 363
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Firebird embedded

Beitrag von Zvoni »

Meine 2 cent (alles nur meine pers. Meinung, wobei ich zugebe, dass ausser "reinschnuppern" ich wirklich noch nie was mit FB gemacht habe)

Pro FB:
1) Wechsel von local (embedded) zu Server
2) Hat einen Event-Mechanismus

Contra FB
1) Ich glaube mich an einen seltsamen SQL-Dialekt zu erinnern (Irgendwas mit Dollarzeichen)
2) In der Vergangenheit musste man für eine AUTO-INCREMENT ID einen Trigger schreiben. Ist das noch immer so?
3) DLL-Hölle (Windows). Keine Ahnung für *nix

Pro SQLite
1) Einfache Installation (wie schon erwähnt)
2) Flexibel durch Erweiterungen (welche sogar direkt aus Lazarus bzw. Quellcode gemacht werden kann. Hab ich mal ein Proof-Of-Concept für Regex-Operator gemacht)
3) InMemory-Datenbank-Support. Finde ich meistens einfacher, als irgendwelche drölfzig ineinander verschachtelten Loops laufen zu lassen
4) Wenn man es richtig macht, sogar komplett statische Bindung möglich
5) Ist bei vielen Anwendungen, welche eine lokale DB brauchen, quasi "Industriestandard"
6) Sehr hoher SQL-Standard an unterstützen Funktionen

Contra SQLite
1) Datentypen einer Spalte werden im Prinzip ignoriert --> Keine "harte" Datentyp-Bindung
2) Unter Lazarus das berüchtigte "(Memo)"-Thema in DB-Gebundenen Controls. (Wobei mir das egal ist, da ich keine DB-gebundenen Controls verwende)


Hab sicher noch diverse Punkte für FB als auch SQLite vergessen.

EDIT: Da das Thema "embedded" (Local) ist: Was hat MariaDB im ersten Post verloren?

EDIT2: Ein "grundsätzliches" Problem scheint eher die "Migration" zwischen verschiedenen DBMS zu sein (Treiber und Bibliotheken mal aussen vor).
Wobei das auch relativ simpel ist, sofern man sich vorher ne gescheite Architektur überlegt.
z.B. den reinen DB-Access-Layer in einer eigenen DLL als Plug-In-System inkl. der SQL-Statements im jeweils spezifischen Dialekt.
Wobei sogar die SQL-Statements nichteinmal "hart" in den Quellcode geschrieben werden müssen, sondern z.B. in ihrer eigenen Tabelle innerhalb der DB existieren
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Joh
Lazarusforum e. V.
Beiträge: 280
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Firebird embedded

Beitrag von Joh »

Also ich arbeite jetzt seit 35 Jahren mit Datenbanken.

Nachdem ich 2021 wieder zu Pascal / Lazarus gewechselt, habe ich mich ganz bewußt nach längeren Recherchen für Firebird entschieden.

Zum einen hatte ich Erfahrungen mit Interbase, aber
ein wichtiges Kriterium dabei war die Verfügbarkeit der Embedded-Version,
=> Ich hatte zum Einstieg ein Mini-Projekt mit einer Zeiterfassung, in der ich die Datenbankzugriffe testen konnte. Da die Software als Einzelplatzversion lief, schien mir die Einrichtung eines lokalen SQL-Servers etwas High-End.

Beim nächsten Projekt grätschte mir gleich eine beim Kunden installierte Firebird 2.6-Datenbank dazwischen (Software von Buhl-Data). Das ließ sich aber problemlos mit einer ini-Konfiguration von Firebird (anderer Netzwerkport und fertig) korrigieren.

Natürlich gab es beim Zugriff auf Firebird den ein oder anderen Rückschlag, aber nix gravierendes.

Das einzige gravierend, was ich bei Firebird sehe ist die mangehafte Dokumentation. Ich habe die (damals) aktuelle Version 4.0 eingesetzt, aber 70% der Beispiele/Hilfen/Doku befasst sich mit der Version 2.x, 25% mit der Version 3.x.

Ansonsten war der Zugriff von Lazarus aus mindestens genauso problemlos wie der Zugriff auf MySQL.

Es läuft einfach, sauber und stabil.

Wenn andere Programmierer Beispiele posten, bei denen man
a) Firebird installieren muß
b) eine Standard-Datenbank voraussetzt, die nicht mitgeliefert wird

dann ist das kein Problem von Firebird, sondern eine Ignoranz des jeweiligen Programmierers, die man nicht dem Firebird-System ankreiden kann!
just my two Beer

charlytango
Beiträge: 1058
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Firebird embedded

Beitrag von charlytango »

...sorry -- schneller Mausfinger -- verklickt
Zuletzt geändert von charlytango am Mi 11. Sep 2024, 22:38, insgesamt 1-mal geändert.

Joh
Lazarusforum e. V.
Beiträge: 280
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Firebird embedded

Beitrag von Joh »

charlytango hat geschrieben: So 8. Sep 2024, 17:18 Ich denke, dass die Einsatzstatistik mich da auch in etwa bestätigt: https://db-engines.com/de/ranking/relational+dbms
wenn für dich ein Ranking bei denen Entscheidungen eine Rolle spielt: warum programmiert du in Lazarus?


PS: und wenn du dich noch 3x wiederholst: ich schrieb über meine aktuellen Erfahrungen. Was damals zu Borlands Interbase-Zeiten war, ist für mich heute irrelevant.
just my two Beer

charlytango
Beiträge: 1058
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Firebird embedded

Beitrag von charlytango »

Joh hat geschrieben: Mi 11. Sep 2024, 13:38 PS: und wenn du dich noch 3x wiederholst: ich schrieb über meine aktuellen Erfahrungen. Was damals zu Borlands Interbase-Zeiten war, ist für mich heute irrelevant.
Du schriebst von deinen Erfahrungen und Meinungen, ich von den meinen -- die dürfen unterschiedlich sein und nebeneinander bestehen. Keine davon ist richtiger als die andere.

scheinbar ist es aber für dich nicht irrelevant ;-)
Joh hat geschrieben: Mi 11. Sep 2024, 13:38 wenn für dich ein Ranking bei denen Entscheidungen eine Rolle spielt: warum programmiert du in Lazarus?
Nicht jedes Ranking muss auf die Goldwaage -- warum ich Lazarus nutze?
Weil ich es trotz aller neuen Sprachen und Dialekte für das feinste Entwicklungssystem halte. Und nicht nur für jemanden der wie ich von Delphi her kommt.
Kann aber auch durchaus sein dass ich für andere Sachen einfach zu blöd bin ;-)

Epcop
Beiträge: 159
Registriert: Di 29. Mai 2012, 09:36

Re: Firebird embedded

Beitrag von Epcop »

Kann jemand für Firebird embedded eine Datenbankadminstrationstool empfehlen (Linux)?

Vieles was ich getestet habe ist nur für Firebird, aber nicht für embedded.

Benutzeravatar
Bullykiffer
Beiträge: 17
Registriert: Fr 9. Aug 2024, 19:44
OS, Lazarus, FPC: Windows 10 (L 3.4.0 FPC 3.2.2)
CPU-Target: Windows 64-Bit
Wohnort: Nordvorpommern

Re: Firebird embedded

Beitrag von Bullykiffer »

Hallo,

ich für meinen Teil bin mit SQLite sehr zufrieden. Für meine Zwecke mehr als ausreichend und performant genug.
Ansonsten wenn es umfangreicher wird (Arbeit) nutze ich PostgreSQL, soll ja immer kein Geld kosten ;)
Ich kann jetzt aber keine anderen Datenbanksysteme großartig bewerten,da ich noch nicht mit vielen Systemen berührung hatte und
mir bei meinem Spagetticode Kenntnissen auch schlichtweg die Ahnung fehlt um viele Funktionen voll zu nutzen.

Cya de Helge

Benutzeravatar
Bullykiffer
Beiträge: 17
Registriert: Fr 9. Aug 2024, 19:44
OS, Lazarus, FPC: Windows 10 (L 3.4.0 FPC 3.2.2)
CPU-Target: Windows 64-Bit
Wohnort: Nordvorpommern

Re: Firebird embedded

Beitrag von Bullykiffer »

Epcop hat geschrieben: Sa 28. Sep 2024, 06:12 Kann jemand für Firebird embedded eine Datenbankadminstrationstool empfehlen (Linux)?

Vieles was ich getestet habe ist nur für Firebird, aber nicht für embedded.
Ich arbeite (noch) nicht unter Linux und auch nicht mit FireBird,aber
vielleicht nützt Dir dieses Tool was?

http://flamerobin.org/index.php

Ich kenne das Tool nicht weiter,aber es soll wohl auch embedded Firebird unterstützen. Versuchen kann man es mal,
ist auch für verschiedene Plattformen verfügbar.

Cya de Helge

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Firebird embedded

Beitrag von creed steiger »

jop Flamerobin ist das Tool der Wahl das ist schon so
ich hab nen Raspi in der Heizung hängen mit 24/7 Werte wegschreiben .... ich kann nichts negtives über Firebird sagen ... das läuft

Antworten