TurboBird weiterentwickelt

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

Moderator: martin.koeditz

maurog
Beiträge: 26
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: 26
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: 263
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: 26
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 :-)

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