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

Vielen Dank, Martin.
Genau das habe ich gemacht – ich habe eine Standard-Datenbank (employee) genommen und sie mithilfe einer Prozedur mit Testdaten befüllt.

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

Hallo,
Der Quellcode auf GitHub wurde bereits aktualisiert (Binarys noch nicht):
ich habe einige Bugs behoben und eine neue Version hochgeladen.
Den aktuellen Quellcode ist hier:
https://github.com/mdadali/TurboBird/ar ... master.zip

Die neuesten Releases stehen hier zum Download bereit:
https://github.com/mdadali/TurboBird/re ... 1.2.1.1256

Gruß
Maurog.
Gerd
Beiträge: 267
Registriert: Di 1. Okt 2019, 17:13

Hallo Maurog.

Danke für Deine Bemühungen.

TurboBird v1.2.1.1256 Erstellungsdatum und Zeit: 08.08.2025, 10:40:06

Dialog: SQL History for: Datenbankname
:: Bekommt offensichtlich ein weiteres Registerblatt "Querys". Toll.

:: Speicherung der Konfiguration nicht mehr im Home-Verzeichnis des Benutzers, sondern ab v1256 in TurboBirds Verzeichnis:

"/data/config"

funktioniert hier. Ich finde diese Verfahrensweise in Ordnung so.


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

Dialog: SQL History for: Datenbankname
:: Bekommt offensichtlich ein weiteres Registerblatt "Querys". Toll.
Das Registerblatt ist für SYSDBA gedacht :-)

Code: Alles auswählen

SELECT
    t.rdb$relation_name AS table_name,
    t.rdb$system_flag,
    CASE WHEN t.rdb$system_flag = 1 THEN 'SYSTEM TABLE'
         ELSE 'USER TABLE' END AS table_type,

    LIST(DISTINCT f.rdb$field_name || ' (' || 
        CASE f.rdb$field_type
            WHEN 7  THEN 'SMALLINT'
            WHEN 8  THEN 'INTEGER'
            WHEN 10 THEN 'FLOAT'
            WHEN 12 THEN 'DATE'
            WHEN 13 THEN 'TIME'
            WHEN 14 THEN 'CHAR'
            WHEN 16 THEN 'BIGINT / INT64'
            WHEN 27 THEN 'DOUBLE PRECISION'
            WHEN 35 THEN 'TIMESTAMP'
            WHEN 37 THEN 'VARCHAR'
            ELSE 'UNKNOWN'
        END || ')', ', ') AS fields,

    LIST(DISTINCT idx.rdb$index_name || 
        ' -> ' || COALESCE(idx.rdb$index_type, 0), ', ') AS indexes,

    LIST(DISTINCT con.rdb$constraint_type || 
        ' [' || con.rdb$constraint_name || ']', ', ') AS constraints,

    LIST(DISTINCT trg.rdb$trigger_name || 
        ' (' || trg.rdb$trigger_type || ')', ', ') AS triggers,

    LIST(DISTINCT dep.rdb$depended_on_name || 
        ' <- ' || dep.rdb$dependent_name, ', ') AS dependencies

FROM rdb$relations t
LEFT JOIN rdb$relation_fields rf
       ON t.rdb$relation_name = rf.rdb$relation_name
LEFT JOIN rdb$fields f
       ON rf.rdb$field_source = f.rdb$field_name
LEFT JOIN rdb$indices idx
       ON idx.rdb$relation_name = t.rdb$relation_name
LEFT JOIN rdb$relation_constraints con
       ON con.rdb$relation_name = t.rdb$relation_name
LEFT JOIN rdb$triggers trg
       ON trg.rdb$relation_name = t.rdb$relation_name
LEFT JOIN rdb$dependencies dep
       ON dep.rdb$depended_on_name = t.rdb$relation_name

WHERE t.rdb$view_blr IS NULL
GROUP BY t.rdb$relation_name, t.rdb$system_flag
ORDER BY t.rdb$system_flag, t.rdb$relation_name;
Gruß,
Maurog.
maurog
Beiträge: 35
Registriert: Di 13. Mai 2025, 21:50

Hallo,

Motaz, der Autor von TurboBird, hat sich bei mir gemeldet.
Mit seiner freundlichen Genehmigung wurde die Lizenz von TurboBird auf MIT geändert.

Beim nächsten Release werde ich die Lizenzinformationen in der Infobox aktualisieren.

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

maurog hat geschrieben: Sa 9. Aug 2025, 12:15 ...
Mit seiner freundlichen Genehmigung wurde die Lizenz von TurboBird auf MIT geändert.
...
Hallo Maurog.

Schön, dass Deine Anfragebemühungen erfolgreich waren. :)
Mein Dank auch an Motaz - dem Ursprungs-Autor. :)


Für alle, denen entfallen ist, was MIT bedeutet:

"Die MIT-Lizenz, auch X-Lizenz oder X11-Lizenz genannt, ist eine vom Massachusetts Institute of Technology stammende freizügige Open-Source-Lizenz. Sie erlaubt die Wiederverwendung der unter ihr stehenden Software sowohl für Software, deren Quelltext frei verwendbar ist (Open Source), als auch für Software, deren Quelltext nicht frei verwendbar ist (Closed Source)." Quelle: https://de.wikipedia.org/wiki/MIT-Lizenz

Ich habe es nämlich auch nicht gewusst. :oops:


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,

ich arbeite gerade daran, TurboBird von SQLDB auf das IBExpress Framework umzustellen, da dieses eine bessere Unterstützung für neuere Firebird-Versionen bietet.
Dabei bin ich auf eine Beispielanwendung gestoßen, die in Bezug auf Administration und Wartung fast alle Möglichkeiten demonstriert, die IBExpress bereitstellt.

Die Anwendung habe ich für Linux kompiliert. Da die Datei zu groß für eine direkte Anhängung hier ist, könnt ihr sie über folgenden Link herunterladen:
https://www.hackcad.com/maindownloads/DBAdmin.zip

Später werde ich sie wahrscheinlich direkt in TurboBird integrieren.
Für Administratoren könnte dieses Tool wirklich hilfreich sein.
Falls jemand eine Windows-Version benötigt, bitte einfach Bescheid geben.

Hier der Inhalt der README-Datei:

The purpose of this example is to both demonstrate Database Management using IBX and to provide a usable tool for Database Administration.

Unlike the Services API example, the program is focused on a specific database. While it also uses the Services API for server level functions, they are always used in the context of the current database. The program is intended to demonstrate:

Access to Database Parameters and their management

Database Backup and Restore

Database File Management including Secondary Files and Shadow File sets

Inspection and Management of Database Attachments

Access to Database Statistics

Database schema listing

Access to Server Properties and the Server Log

User Management

Monitoring of User Mappings

Monitoring of User/Role Access Rights including the identification of “stale” user rights

Database Validation and Repair

Limbo Transaction Resolution

The example is discussed in detail in section 3 of the User Guide "Firebird Server Management using IBX" in the ibx/docs directory.

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

Hallo Maurog.

Ich habe damit sowohl die Firebird Beispiel-Datenbank als auch mal eine von mir angelegte 5er Datenbank geprüft - aber nicht alles! (Hier unter Linux Mint v22.1 Cinnamon und ISQL Version: LI-V5.0.3.1683 Firebird 5.0).


Die Informationen/Funktionen, die dieses Admin-Tool in seiner Art und Weise bereitstellt, finde ich praxisrelevant und leicht erreichbar.
Wenn das in geeigneter Art Eingang in TurboBird finden könnte, dann wäre dies meiner Meinung nach eine Aufwertung von TurboBird. Und wenn ich es richtig verstanden habe, spart es Entwicklungszeit, weil nicht von Punkt Null begonnen werden muss.

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

Und wenn ich es richtig verstanden habe, spart es Entwicklungszeit, weil nicht von Punkt Null begonnen werden muss.
Genau so ist es.
Danke für Deine Feedback.

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

Hallo,

ich habe eine neue Version hochgeladen.

Änderungen in dieser Version

Export:
Daten aus DataSets/Grids können jetzt in 9 Formate exportiert werden
(per Rechtsklick auf die Daten).
Bild

OpenQueryBuilder integriert:
Schnittstelle QueryBuilder → IBX korrigiert.
Mit dem OpenQueryBuilder lassen sich Abfragen visuell per Drag & Drop erstellen, testen
und ins QueryWindow übernehmen.
Abrufen kann man die Abfrage im QueryWindow über den letzten ToolButton.
Bild

EditTableGrid → EditTableData:
Auf IBX umgestellt (mit Array-Unterstützung für Lesen/Schreiben).
Umbenannt in EditTableData.
EditDataFullRec entfernt:
Als TabSheet in EditTableData neu implementiert.
EditTableData enthält jetzt 2 Tabs: Grid-Ansicht und Formular-Ansicht.
Hier können auch Arrays editiert werden. In der Beispieldatenbank gibt es nur 1D-Arrays,
die funktionieren bereits gut. 2D-Arrays habe ich noch nicht getestet.
Abrufbar im Hauptfenster per Rechtsklick im TreeView auf den Tabellennamen → Edit TableData
Bild

Neue Maske „CheckDBIntegrity“:
Da ich die Anwendung auf IBX (DB-Framework für InterBase/Firebird) umstelle,
stoße ich oft auf Probleme mit CharSets.
Deshalb gibt es nun eine einfache Maske, mit der man Field-CharSets schnell einsehen kann
(derzeit eher als Platzhalter gedacht).
Momentan wird nur das CharSet überprüft, aber die Maske ist sehr leicht erweiterbar.
Abrufbar im Hauptfenster über den 4. ToolButton in der Toolbar
Bild


Quellverzeichnis restrukturiert:
Mit der neuen Struktur ist die Übersichtlichkeit deutlich besser.

Quellcode überarbeitet:
Die Anwendung sollte jetzt insgesamt stabiler laufen.

Hinweis:
Die Windows-Versionen konnte ich leider nicht testen, da ich kein Windows-Rechner zur Verfügung habe.

Viele Grüße,
Maurog.

PS: Wer Ideen, Wünsche oder Vorschläge hat → immer gerne, ich implementiere so viel ich kann.
Antworten