TurboBird weiterentwickelt

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

Moderator: martin.koeditz

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

Ein klitzekleiner Wermutstropfen ist die leider wohl unglücklich verankerte Checkbox "Overwrite existing SQL".
Sie könnte eigentlich ganz oben platziert sein. Und dann folgt die Tabelle.
QueryWin.png
QueryWin.png (70.27 KiB) 79090 mal betrachtet
so vielleicht ?
Gerd
Beiträge: 267
Registriert: Di 1. Okt 2019, 17:13

Hallo Maurog.

Meiner Ansicht nach: P e r f e k t !
Danke.

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

Aktualisierten Quellcode habe ich hochgeladen:
https://github.com/mdadali/TurboBird/ar ... master.zip

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

Hallo Maurog.

Der Dialog wurde somit von Dir aufgewertet. Sehr schön. :)
Dialig_SQL_History_for_Datenbankname.png
Dialig_SQL_History_for_Datenbankname.png (78.32 KiB) 78495 mal betrachtet
Viele Grüße
Gerd
ISQL Version: LI-V5.0.3.1683
Linux Mint 22.1 Cinnamon 6.4.8
maurog
Beiträge: 35
Registriert: Di 13. Mai 2025, 21:50

Hallo zusammen,

ich habe die Version 1.2.1.1155 auf GitHub hochgeladen.

Der Update-Checker wurde auf GitHub umgestellt.
Für diese Funktionalität müssen auf dem Client-System die OpenSSL-Bibliotheken vorhanden sein – sowohl Laufzeit- als auch Entwicklungsbibliotheken.

Beim ersten Start der Anwendung wird ein data-Verzeichnis mit mehreren Unterordnern angelegt.
Darin befinden sich Voreinstellungen (Presets) für Firebird-Server.
Diese Presets können bei Bedarf aus TurboBird übernommen und direkt in die firebird.conf geschrieben werden.


Für Entwickler:
Versionsnummern werden automatisch per Post-Build-Skripten erstellt (derzeit nur für Linux).

Diese Skripte:
hängen die Versionsnummer an den Dateinamen an,
führen Kompression durch,
strippen Symbole,
und löschen ggf. alte Builds.

Die statische Basisversion ist in src/version.inc definiert.
Nach jedem Build wird die Buildnummer automatisch erhöht.
Der Update-Checker nutzt die Versionsnummern aus dem Dateinamen (nicht aus der Datei selbst).
Um diese Skripte auszuführen, muss in Lazarus ein Build-Vorgang durchgeführt werden (kein simples Compile).

In src/handle_scripts/ gibt es je Build Mode ein separates Script.
Diese lassen sich bei Bedarf anpassen über folgende Schalter:

COMPRESS=ON/OFF
STRIP=ON/OFF
RENAME=ON/OFF
DELETE_OLD_FILES=ON
LOGGING=ON

Hinweis:
Die Anwendung lässt sich unter Linux und Windows auch ganz normal kompilieren (ohne Build-Vorgang in Lazarus und Scripte).
In diesem Fall wird das Ergebnis direkt aus dem in den Lazarus-Projekteinstellungen gesetzten TargetFileName erzeugt.

Ich freue mich über euer Feedback.
Bugs, Verbesserungsvorschläge oder Wünsche könnt ihr gerne direkt melden.

Viele Grüße
Maurog
maurog
Beiträge: 35
Registriert: Di 13. Mai 2025, 21:50

Hallo,

leider habe ich gestern versehentlich die falschen ZIP-Dateien hochgeladen.
Bei allen, die bereits heruntergeladen haben, möchte ich mich dafür entschuldigen.

Heute habe ich den Fehler korrigiert.
Hier ist der aktuelle Link zur richtigen Version:
🔗 https://github.com/mdadali/TurboBird/re ... 1.2.1.1255

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

maurog hat geschrieben: Mi 6. Aug 2025, 11:44 ...
Heute habe ich den Fehler korrigiert.
Hier ist der aktuelle Link zur richtigen Version:
🔗 https://github.com/mdadali/TurboBird/re ... 1.2.1.1255

Viele Grüße
Maurog
Hallo Maurog.

Sei es, wie es sei. Das entpackte Archiv "TurboBird_x86_64-linux64-gtk2-release-v1.2.1.1255.zip" beinhaltet quasi die (u. a. für Linux) kompilierte Programmdatei "TurboBird_x86_64-linux64-gtk2-release-v1.2.1". Wird die unter Linux Mint v22.1 ausgeführt und sind auf dem Rechner die beiden Bibliotheken

libssl3
libssl-dev


verfügbar, dann funktioniert nun der anwenderfreundliche Unterdialog UpdateCheck (wie er wohl soll).

Was mich betrifft, so melde ich mich (hier im Forum nur noch), wenn es erweiterte oder neue Funktionalitäten beim kompilierten TurboBird gibt.


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

Hallo Gerd,

Danke für dein Feedback.

dieser Beitrag war ursprünglich als E-Mail an dich gedacht, da du dich ebenfalls mit Quellcode beschäftigst. Ich poste ihn aber hier im Forum – vielleicht ist er auch für andere Entwickler interessant.

Setup in Lazarus:
Für den Build von TurboBird sind zunächst folgende Pakete über den Online Package Manager in Lazarus zu installieren:
Abbrevia
ZeosDB
Synapse.

Zusätzlich muss die Komponente SQLQueryExt aus dem Verzeichnis
src/components/sqldb_ext manuell installiert werden.

Quellcode von GitHub holen
Den aktuellen Source-Code findest du immer unter diesem ZIP-Link zur master-Branch:
https://github.com/mdadali/TurboBird/ar ... master.zip

Versionierung und Update-Check
Die automatische Versionierung und der Update-Check funktionieren nur, wenn du das Projekt über "Build" erstellst – nicht bei einfachem Kompilieren!

Beim Build-Vorgang wird:
Die Anwendung kompiliert → z. B. TurboBird_x86_64-linux64-gtk2-debug
Anschließend ein Shell-Skript aufgerufen, das:
den Dateinamen umbenennt → z. B. TurboBird_x86_64-linux64-gtk2-debug-v1.2.1.1255
(optional) strippt
(optional) komprimiert
alte Dateien löscht etc.

Diese Skripte befinden sich im Verzeichnis src/handle_scripts und sind nach Build-Konfiguration benannt – z. B. x86_64-linux64-gtk2-debug.
Die Skripte können über Schalter angepasst werden:
STRIP=OFF
COMPRESS=ON
RENAME=ON
DELETE_OLD_FILES=ON
LOGGING=ON

⚠️ Hinweis:
Wenn du unter Linux eine Windows-Exe baust, sollte STRIP=OFF gesetzt sein – sonst wird die .exe beschädigt.

Für Debug-Builds (alle Plattformen) sollte ebenfalls nicht gestript werden, da sonst die Debug-Informationen entfernt werden.

Anwendung starten & entwickeln:
Erstelle die Versionierte Anwendung mit:
Lazarus → Run → Build

Die resultierende Datei (z. B. TurboBird_x86_64-linux64-gtk2-debug-v1.2.1.1255) kann nicht direkt aus Lazarus gestartet werden, da sie durch das Skript umbenannt wurde.
→ Starte sie manuell im Dateisystem.

Für Entwicklung und Debugging:
In Lazarus unter
Project → Project Options → Config and Target

Wähle z. B. x86_64-linux64-gtk2-debug in der Auswahlbox oben.
Dann einfach kompilieren und starten (kein Build).
Wenn du mit der Entwicklung fertig bist:
→ "Build" ausführen, um die finale Anwendung mit Versionsinfos zu erzeugen.

Viele Grüße
Maurog.
maurog
Beiträge: 35
Registriert: Di 13. Mai 2025, 21:50

Hallo,

die ursprüngliche Version der Anwendung speicherte die Datenbank-Registrierungen im Home-Verzeichnis des Benutzers.

Wenn jedoch mehrere Instanzen von TurboBird mit unterschiedlichen Konfigurationen (z. B. verschiedenen Firebird-Versionen) gleichzeitig gestartet wurden, griffen alle auf dieselbe Registrierung zu – und Einstellungen konnten sich gegenseitig überschreiben.

Ab sofort wird die Konfiguration im Unterverzeichnis data/config abgelegt. Dadurch nutzt jede Instanz ihre eigene Konfiguration – ideal, wenn man z. B. mehrere Datenbankversionen testen oder ältere Datenbanken migrieren möchte.

Ich habe z. B. die employee.fdb-Datenbank aus Firebird 2.5 gebackupt und direkt in Firebird 5 wiederhergestellt – ganz ohne Zwischenschritte. Es hat problemlos funktioniert.

Der Quellcode auf GitHub wurde bereits aktualisiert (Binarys noch nicht):
https://github.com/mdadali/TurboBird/ar ... master.zip

Falls jemand die vorkompilierten Binarys benötigt, muss er nicht bis zum nächsten Release warten – einfach kurz melden.

P.S.:
Kennt jemand eine richtig große Datenbank (mehrere TB) oder ein Tool, das so etwas erzeugen kann?
Ich würde TurboBird/FireBird gern mit größeren Datenmengen auf Performance testen.

Viele Grüße
Maurog
Dateianhänge
TurboBird.png
TurboBird.png (274.84 KiB) 65420 mal betrachtet
Benutzeravatar
martin.koeditz
Beiträge: 517
Registriert: Sa 31. Mär 2018, 14:35

Tatsächlich kenne ich keine DB in dieser Größenordnung.

Man könnte eine Standard-DB nehmen und dann z.B. mit einer Prozedur auffüllen.
Martin Köditz
SynDesk SW GmbH
Antworten