TurboBird further developed

Skip to first unread message

Mustafa Dadali

unread,
Apr 20, 2026, 1:08:20 PMApr 20
to firebird-general

Hello everyone,

I would like to introduce my continued development of TurboBird.

The tool was originally developed by Abdel Azem Motaz, but was discontinued around 2015.
I took over the code about a year ago and have been continuously developing, modernizing, and extending it since then.

TurboBird is a Lazarus (FreePascal) project and is currently cross-platform:

  • Linux

  • Windows


🔧 Technical Base / Refactoring

The biggest step was the complete removal of SQLDB:

  • full migration to IBX

  • no SQLDB used anymore

  • more stable behavior with complex statements / metadata

  • overall better Firebird compatibility

Additionally:

  • dynamic loading of Firebird client libraries

  • parallel use of multiple Firebird versions (2.5 → 6.0) within a single instance

  • thanks to IBX: script execution with and without terminators is possible


🚀 Performance & Scalability

The TreeView has been completely reworked:

  • Lazy Loading (objects are loaded only when expanded)

  • significantly reduced initial load time

  • tested with:

    • ~1,000,000 domains

    • ~10,000 packages

    • several thousand tables

Performance remains stable even with very large catalogs.


📊 Monitoring / Low-Level Access

Activity Monitor:

  • display of attachments, transactions, and statements

  • direct termination of attachments / statements possible


🔍 Navigation / UI
  • Tree filter for working efficiently with large databases

  • reworked tab system (movable, more compact)

  • QueryWindow:

    • code / result view can be maximized independently

    • editor intentionally decoupled from the theme system (more stable rendering)


🧰 Tools (integrated)
  • visual QueryBuilder (drag & drop → SQL)

  • Routine runner for:

    • procedures

    • functions

    • UDF

    • UDR

  • DataEditor (formerly CSVEditor)

    • supports reading/editing/exporting multiple formats

  • integration of DBReader (data recovery)

  • “Buildin-Tools” menu for direct access to tools


💾 Backup / Restore

Migration to IBX (Tony Whyman code):

  • server-side restore (recommended, stable)

  • client-side restore (currently with limitations)

  • multi-file restore implemented


📁 Data / Export
  • export to multiple (14) formats (including Markdown / HTML)

  • clipboard export with limits (protection for large datasets)

  • support for more complex data types (including arrays)


🧠 Firebird-specific Features
  • proper support for case-sensitive identifiers

  • correct handling of quoted / unquoted identifiers

  • multi-version handling via IBX

  • automatic handling for older Firebird versions (e.g., DummyRole)


🌍 Miscellaneous
  • embedded connections (with known limitations)

  • simple multilingual help system (HTML-based, groundwork for UI localization)

  • configurable via INI (e.g., UI, editor, behavior)


⚠️ Known Issues
  • embedded connections → please consider limitations

  • client-side restore → may be incomplete (server-side recommended)


💬 Context

This is not just maintenance, but rather a larger technical refactoring and functional extension of the original project.

I would be very interested in your feedback.


🤝 Feedback welcome
  • tests with different Firebird versions

  • edge cases / large databases

  • ideas / criticism


Releases and source:
https://github.com/mdadali/TurboBird

Best regards
Mustafa.

Mustafa Dadali

unread,
May 19, 2026, 3:33:10 PMMay 19
to firebird-general
Hi,

I have uploaded TurboBird v1.2.1.1273. This version is significantly more powerful than v1.2.1.1272.
https://github.com/mdadali/TurboBird/releases/tag/TurboBird_v1.2.1.1273

Here is an excerpt from the changelog:

**+ Runtime Drag & Drop Form Designer & PascalScript (New)**
- Dedicated "Forms" node in the database tree
- Custom forms can now be created per database
- Forms are saved as .cfrm + .rops files
- "New Form" opens the visual designer
- "Edit Form" loads an existing form into the designer
- "Execute Form" runs a form directly
- Double-click on a form starts execution
- Storage location: data/PSStudio/Forms/<Server>/<Database>/

**! Table Management and Constraints (completely overhauled)**
- All constraint types now visible as subnodes of each table
- Primary Key with field list
- Foreign Keys with reference display
- Unique Constraints with field list
- Check Constraints with condition
- Not Null Constraints with affected fields
- Indices (only user-defined, without system indices)
- Multi-column keys are clearly grouped (PRIMARY KEY (Field1, Field2))
- Table management extended with new tabs:
  - Primary Key: select fields via checkbox, changes generate SQL
  - Foreign Keys: manage existing ones, create new ones with wizard
  - Unique Constraints: select fields, assign name
  - Check Constraints: edit expression directly
  - Not Null Constraints: check fields, changes as ALTER statements

**! Trigger Support (extended)**
- New trigger types in the tree:
  - Database triggers (ON CONNECT, ON DISCONNECT, ON TRANSACTION...)
  - DDL triggers (BEFORE/AFTER CREATE TABLE, DROP TABLE, etc.)
  - UDR triggers (EXTERNAL NAME ... ENGINE UDR)
- "Create new Trigger" with appropriate template for each type
- Trigger view shows correct type (Table/DB/DDL)
- Editing and deleting of all trigger types possible

**! Tree Structure (improved)**
- Table fields now clearly grouped under "Fields"
- Constraints and indices visible directly under the table
- Table triggers visible directly under the table
- "References" and "Permissions" under each table

And several bugs fixed.

I will also upload an animated GIF showing how to use PascalScript Studio.

Best Regards,
Mustafa.
Reply all
Reply to author
Forward
0 new messages