TurboBird weiterentwickelt

Forum für Fragen rund um Firebird-Software von Drittanbietern.

Moderator: martin.koeditz

maurog
Beiträge: 19
Registriert: Di 13. Mai 2025, 21:50

Hallo zusammen,

ich habe kürzlich etwas an TurboBird gearbeitet. Das Ergebnis findet ihr hier auf GitHub:
https://github.com/mdadali/TurboBird

Eine ausführlichere Beschreibung gibt es im Lazarus-Forum:
https://forum.lazarus.freepascal.org/in ... 389.0.html

Viele Grüße
Maurog
Gerd
Beiträge: 260
Registriert: Di 1. Okt 2019, 17:13

Hallo Maurog.

Danke für Deinen Hinweis und Deine Arbeit an TurboBird. Habe mir nur die Bilder auf GitHub angeschaut. Sieht gut aus.
(GitHub ist leider nicht "mein Ding".)


Viele Grüße
Gerd
ISQL Version: LI-V5.0.3.1683
Linux Mint 22.1 Cinnamon 6.4.8
maurog
Beiträge: 19
Registriert: Di 13. Mai 2025, 21:50

Hallo Gerd,

ich habe vorkompilierte Dateien (für Linux und Windows) auf meine eigene Domain/Webspace hochgeladen, damit man sie einfach herunterladen und ausführen kann – ganz ohne GitHub :-) und ohne selbst kompilieren zu müssen.

Linux Binary (64-Bit):
https://www.hackcad.com/maindownloads/t ... _linux.zip

Windows Binary (64-Bit):
https://www.hackcad.com/maindownloads/t ... 64_win.zip

Und falls du doch selbst kompilieren möchtest:

Quellcode:
https://www.hackcad.com/maindownloads/turbobird_src.zip

und Hier ein kurze video: https://www.hackcad.com/maindownloads/turbobird_2.mkv

Falls du Probleme hast, lass es mich einfach wissen.

P.S.: Falls es beim ersten Start Probleme gibt:
Einfach mit der rechten Maustaste auf „localhost“ klicken und „Set Firebird Client“ auswählen.
Es erscheint ein Suchdialog, in dem man nach der fbclient.dll (unter Windows) bzw. libfbclient.so (unter Linux) suchen kann.

Viele Grüße
Maurog.
Gerd
Beiträge: 260
Registriert: Di 1. Okt 2019, 17:13

Hallo Maurog.

Herzlichen Dank für Deine Bemühungen.
Habe mich für Linux Binary (64-Bit) entschieden. Entpackt und die Datei "TurboBird" problemfrei ausgeführt.

Also wie gesagt, mir gefällt es gut. TurboBird war mir bisher nicht bekannt.
Bei dieser einfachen Test-Datenbank "adressen.fdb" (s. Abbildung: TurboBird_v1_2_1_unter_Linux_Mint_22_1_und_Firebird_5_0_3) funktioniert so weit vieles (habe noch nicht alles durch).
TurboBird_v1_2_1_unter_Linux_Mint_22_1_und_Firebird_5_0_3.png
TurboBird_v1_2_1_unter_Linux_Mint_22_1_und_Firebird_5_0_3.png (252.83 KiB) 18766 mal betrachtet
Ein Showstopper scheint mir der Inhalt des Dialogs "About TurboBird" zu sein.
:: speziell die Angabe zur Programm-Version 1.2.1 2010 - Jan 2015
:: der Update-Check funktioniert hier unter Linux Mint v22.1 Cinnamon nicht.
Wie bekomme ich da mit, wenn es eine neuere Programm-Version von TurboBird gibt?

Ich nutze Firebird 5.0.3 unter Linux Mint und freue mich, wenn es ein praktikables und übersichtliches Programm auch insbesondere für Linux gibt. Vielleicht schreitet die Programmentwicklung weiter voran ...

Werde das Programm in den nächsten Wochen öfters aufrufen, prüfen und ggfls. bei Auffälligkeiten informieren. Gleich hier berichten - oder soll das besser an eine andere Stelle gerichtet werden?

Vielleicht könnte ja das Programm TurboBird auch unter https://firebirdsql.org/en/third-party-tools/ mit aufgeführt werden.


Zu Deiner allgemeinen Information:
Habe mir vor Kurzem von GitHub das Archiv "turbobird_src.zip" geladen.
Auf einen alten Windows-Rechner entpackt.
Die Projekt-Datei TurboBird.lpi in Lazarus 3.x geöffnet.
Es kamen zwei Meldungen, dass die Pakete, Synapse und Zeos fehlen. Die habe ich angeboten bekommen und installiert.
Dann kompiliert.
Es musste noch ein fehlendes Verzeichnis auf C angelegt werden - wurde erledigt.
Es kam eine Anzahl von Meldungen (Nachrichtenfenster).
Und eine Meldung (roter Balken) - irgendwas mit einer EXE - stoppte dann den Prozess.
Unter Linux habe ich es allerdings nicht kompiliert.



Viele Grüße

Gerd
ISQL Version: LI-V5.0.3.1683
Linux Mint 22.1 Cinnamon 6.4.8
maurog
Beiträge: 19
Registriert: Di 13. Mai 2025, 21:50

Hallo Gerd,

vielen Dank für dein Feedback!

TurboBird wurde ursprünglich von motaz (Username im Lazarus-Forum und auf GitHub) entwickelt:
https://github.com/motaz/turbobird

Ich habe vor etwa zehn Wochen die Originalversion von GitHub heruntergeladen und erfolgreich kompiliert. Die Anwendung ließ sich problemlos starten.

Die Entwicklung von TurboBird wurde allerdings bereits 2015 eingestellt. Unterstützt wurde offiziell nur Firebird Version 2.5.xxx.

Was ich bisher daran geändert habe:

--Dynamisches Einlesen von Firebird-Datentypen:
In der Originalversion waren die Datentypen fest im Code hinterlegt (hardcodiert). Ich habe das geändert, sodass sie nun je nach Serverversion dynamisch eingelesen und in der Anwendung entsprechend zur Verfügung gestellt werden (Anzeigen, Bearbeiten etc.).
Damit sollte TurboBird theoretisch versionsunabhängig funktionieren.

--Unterstützung für Packages und UDRs: (anzeigen, anlegen, löschen etc...)
Diese Funktionen werden ebenfalls abhängig von der verwendeten Firebird-Version – in der Oberfläche angezeigt oder ausgeblendet.

--Ein universeller Routine-Runner für:

UDRs
UDFs
Firebird-Prozeduren
Firebird-Funktionen

--Firebird-Konfiguration direkt in TurboBird:
Aktuell mit Unterstützung für firebird.conf.

--Auswahl und Setzen der Firebird-Clientbibliothek (fbclient.xxx):
Direkt aus TurboBird heraus, um einfacher mit verschiedenen Firebird-Versionen experimentieren zu können.

Was ich nicht geändert habe:
An der Oberfläche (z. B. InfoDialog oder andere Masken) habe ich nichts überarbeitet.

Zur Zukunft von TurboBird:

Ich habe versucht, den ursprünglichen Entwickler motaz zu kontaktieren – leider ohne Erfolg.
Hier ist meine Anfrage: https://github.com/motaz/turbobird/issues/41

Allein werde ich dieses Projekt jedoch nicht dauerhaft betreuen können, da mein Schwerpunkt primär auf der Entwicklung einer CAD-Anwendung bzw. Bibliothek liegt (LazCAD / CADSys4).
Für den produktiven Einsatz ist TurboBird in der aktuellen Form nicht geeignet, aber für Testzwecke durchaus brauchbar.

Wenn jedoch jemand konkrete Anforderungen oder Wünsche hat, helfe ich gerne – soweit es mir möglich ist, jederzeit.


Zu deinen Fragen:
Wie erfahre ich, ob es eine neue Version von TurboBird gibt?
Falls es eine neue Version gibt:
schreibe ich in alle relevanten Foren (Lazarus-Forum, etc.)
und lade die aktuelle Version auf GitHub hoch: https://github.com/mdadali/TurboBird
Soll ich Auffälligkeiten hier melden oder lieber woanders?
Du kannst sehr gerne direkt hier berichten – ich schaue regelmäßig vorbei.

Nochmals vielen Dank für dein Feedback!
Viele Grüße
Maurog.
Benutzeravatar
martin.koeditz
Beiträge: 513
Registriert: Sa 31. Mär 2018, 14:35

Toll wäre natürlich, die aktuellen Releases unter Github bereitzustellen. Mit dem Deployment unter Github tue ich mich allerdings auch schwer. Vielleicht finden wir da ja eine Lösung.

Gruß
Martin
Martin Köditz
SynDesk SW GmbH
maurog
Beiträge: 19
Registriert: Di 13. Mai 2025, 21:50

Hallo Martin,
vielen Dank für Dein Feedback.

Mit dem Deployment auf GitHub tue ich mich allerdings auch etwas schwer :-)
Aber ich habe es schon einmal geschafft (LazCAD), und ich denke, ich werde es auch diesmal wieder hinbekommen.

Am Wochenende werde ich den Code bereinigen (Hinweis von Gerd), neu kompilieren und sowohl die Binaries als auch den Quellcode auf GitHub bereitstellen.

Viele Grüße
Maurog
Zuletzt geändert von maurog am Sa 26. Jul 2025, 13:34, insgesamt 1-mal geändert.
maurog
Beiträge: 19
Registriert: Di 13. Mai 2025, 21:50

Hallo,

Der Quellcode sowie die Binarys für Linux und Windows sind jetzt auf GitHub verfügbar:
https://github.com/mdadali/TurboBird/re ... 1.2.1.1124

Da SQLDb derzeit die neuen Firebird-Datentypen wie TIMESTAMP WITH TIME ZONE und Arrays nicht unterstützt, habe ich eine einfache Komponente namens TSQLQueryExt erstellt (zu finden im Verzeichnis components).

Diese Komponente:
wandelt unbekannte Datentypen wie TIMESTAMP WITH TIME ZONE automatisch in VARCHAR um,
analysiert Array-Felder und stellt Zusatzinformationen für das DBGrid bereit,
verhindert dadurch Exceptions wie „FieldType unknown“ und sorgt für reibungslose Darstellung.

Damit das funktioniert, muss die Komponente in Lazarus installiert werden (über das Komponenten-Paket im components-Ordner).

Hinweis zur Kompatibilität:
Für Firebird 4 empfehle ich, die Client-Library (fbclient.dll / fbclient.so) aus Firebird 5 zu verwenden – damit läuft die Anwendung spürbar stabiler.

Außerdem sollte ab Firebird 3 in der firebird.conf die Einstellung
DataTypeCompatibility = 3.0 gesetzt sein.

Nach meinen Tests funktioniert die Anwendung mit diesen Einstellungen deutlich besser und zuverlässiger.

Viele Grüße,
Maurog.
Gerd
Beiträge: 260
Registriert: Di 1. Okt 2019, 17:13

maurog hat geschrieben: Sa 26. Jul 2025, 13:28 Hallo,

Der Quellcode sowie die Binarys für Linux und Windows sind jetzt auf GitHub verfügbar:
https://github.com/mdadali/TurboBird/re ... 1.2.1.1124 ...

Hallo Maurog.

Ich habe mir heute das Archiv "TurboBird_linux_x64.zip" von github.com/mdadali/TurboBird/releases/tag/TurboBird_v1.2.1.1124 geholt und bereits installiert.

Mit der Vorversion habe ich recht intensiv gearbeitet. Es passierte stets das, was ich erwartet habe.
Datenbank anlegen OK
Tabelle aus Skript anlegen OK
Datenimport (20.000 Datensätze) OK
Einzelne Datensätze löschen OK
UPDATE der Daten OK
Alle Datensätze löschen OK
Tabelle löschen OK
Backup OK
Restore OK

Das Programm scheint mir robust zu sein.

Die heutige und somit neueste Version bezeichne ich bis zum Erscheinen einer neueren als v1.2.1.1124.

Erwähnen möchte ich, dass der Dialog SQL History "Datenbankname" noch nicht funktioniert.

Vielleicht versuche ich den Code in Lazarus 4.2 (Linux) zu laden und dort zu kompilieren.


Danke für Deine Mühen und Deinen Einsatz für TurboBird. :)


Viele Grüße
Gerd
ISQL Version: LI-V5.0.3.1683
Linux Mint 22.1 Cinnamon 6.4.8
maurog
Beiträge: 19
Registriert: Di 13. Mai 2025, 21:50

Hallo Gerd,

vielen herzlichen Dank für dein ausführliches Feedback – freut mich wirklich sehr zu hören, dass TurboBird bei dir stabil und zuverlässig läuft!
Gerade dein Praxis-Test mit so vielen Operationen ist extrem hilfreich.

Den Hinweis zum SQL-History-Dialog habe ich notiert – das werde ich mir genauer ansehen.

Falls du den Code unter Lazarus 4.2 auf Linux kompilierst und dabei auf etwas stößt oder Fehler/Bugs entdeckst, gib mir bitte Bescheid. Ich bin jederzeit offen für Rückmeldungen und Verbesserungsvorschläge – gemeinsam machen wir TurboBird robuster.

Danke auch für deine freundlichen Worte – sowas motiviert wirklich, weiterzumachen. 😊

Viele Grüße
Maurog
Antworten