Firebird embedded
- 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
Es gibt wirklich keine Notwendigkeit eine SQLite oder MariaDB zu verwenden, wenn man Firebird Embedded kennt:
https://wiki.freepascal.org/Firebird_embedded
Salut,
Mathias
https://wiki.freepascal.org/Firebird_embedded
Salut,
Mathias
- 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
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.
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
- 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
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
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
-
- 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
Ja.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.
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
-
- 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
Firebird 4.0 Embedded besteht unter Windows aus folgenden Dateien:
edit: Windows erwähnt
Code: Alles auswählen
.\fbclient.dll
.\ib_util.dll
.\IDPLicense.txt
.\plugins\engine13.dll
just my two Beer
-
- 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
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:
wie gesagt... nur meine 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
- 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
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
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.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
- 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
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!
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
-
- 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
...sorry -- schneller Mausfinger -- verklickt
Zuletzt geändert von charlytango am Mi 11. Sep 2024, 22:38, insgesamt 1-mal geändert.
-
- 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
wenn für dich ein Ranking bei denen Entscheidungen eine Rolle spielt: warum programmiert du in Lazarus?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
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
-
- 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
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.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.
scheinbar ist es aber für dich nicht irrelevant

Nicht jedes Ranking muss auf die Goldwaage -- warum ich Lazarus nutze?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?
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

Re: Firebird embedded
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.
Vieles was ich getestet habe ist nur für Firebird, aber nicht für embedded.
- 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
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
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
- 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
Ich arbeite (noch) nicht unter Linux und auch nicht mit FireBird,aberEpcop 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.
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
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Firebird embedded
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
ich hab nen Raspi in der Heizung hängen mit 24/7 Werte wegschreiben .... ich kann nichts negtives über Firebird sagen ... das läuft