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
TurboBird weiterentwickelt
Moderator: martin.koeditz
Hallo,
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.
ich habe einige Bugs behoben und eine neue Version hochgeladen.Der Quellcode auf GitHub wurde bereits aktualisiert (Binarys noch nicht):
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.
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
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
Linux Mint 22.1 Cinnamon 6.4.8
Das Registerblatt ist für SYSDBA gedachtDialog: SQL History for: Datenbankname
:: Bekommt offensichtlich ein weiteres Registerblatt "Querys". Toll.

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;
Maurog.
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
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
Hallo Maurog.maurog hat geschrieben: Sa 9. Aug 2025, 12:15 ...
Mit seiner freundlichen Genehmigung wurde die Lizenz von TurboBird auf MIT geändert.
...
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.

Viele Grüße
Gerd
ISQL Version: LI-V5.0.3.1683
Linux Mint 22.1 Cinnamon 6.4.8
Linux Mint 22.1 Cinnamon 6.4.8
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
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
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
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
Linux Mint 22.1 Cinnamon 6.4.8
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).

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.

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

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

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.
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).

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.

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

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

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.