Author Topic: TurboBird for FireBird 5  (Read 6077 times)

maurog

  • Full Member
  • ***
  • Posts: 110
TurboBird for FireBird 5
« on: June 07, 2025, 01:35:15 pm »
Hello everyone,

As part of a recent project, I worked on TurboBird to add support for Firebird 5. Along the way, I added several new features and improvements.

🔧 New and Improved Features
✅ Dynamic Firebird Data Type Handling
All Firebird data types are now loaded dynamically at runtime, making TurboBird largely version-independent.

✅ Package Support
You can now create and edit Firebird packages directly within TurboBird.

✅ UDR Support (User Defined Routines)
TurboBird can now create, edit, and execute user-defined routines (UDRs), including parameters and results.

✅ Unified Routine Runner
A single routine runner now supports:

UDFs
UDRs
Stored Procedures
Functions

✅ Firebird Server Configuration
You can now configure Firebird server settings directly within TurboBird, making it easier to manage without external tools.

⚠️ Known Limitations
Data type rendering is not perfect yet – especially Firebird arrays are currently not supported.

There is a component in the classes folder named
TArrayQuery = class(TSQLQuery)
which can handle arrays.

To fully support this, all instances of TSQLQuery in the project would need to be replaced with TArrayQuery – which I unfortunately don’t have time for at the moment.

⚠️ License Notice
The original version of TurboBird was released under
GPL for the GUI, and LGPL for the units (original source).

I tried to contact the original author, but was unable to reach them.
I assume that continuing development under the existing open source license is acceptable and in the spirit of the project.

🧪 Experimental Status
This version is not production-ready – but it’s ideal for testing, evaluation, and community feedback.

💾 Source Code
📦 GitHub Repository (Open Source):
🔗 https://github.com/mdadali/TurboBird

🛠️ No precompiled binaries at the moment – please compile from source.

Best regards,
Maurog

« Last Edit: July 05, 2025, 11:17:01 am by maurog »
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #1 on: July 05, 2025, 11:33:56 am »
Quick update:

I’ve now published the source code on GitHub: 
🔗 https://github.com/mdadali/TurboBird

The first post has been updated accordingly.

New in this version: 
TurboBird can now directly edit the Firebird configuration file (firebird.conf).
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #2 on: July 26, 2025, 01:40:35 pm »
Hi,

The source code and binaries for Linux and Windows are now available on GitHub:
https://github.com/mdadali/TurboBird/releases/tag/TurboBird_v1.2.1.1124

Since SQLDb currently does not support the new Firebird data types such as TIMESTAMP WITH TIME ZONE and arrays, I’ve created a simple component called TSQLQueryExt (located in the components directory).

This component:
automatically converts unsupported data types like TIMESTAMP WITH TIME ZONE to VARCHAR,
analyzes array fields and provides additional metadata for DBGrid,
avoids exceptions like “FieldType unknown” and ensures proper rendering.

To use this, the component must be installed in Lazarus (via the package found in the components folder).


Compatibility Note:
For Firebird 4, I recommend using the client library (fbclient.dll / fbclient.so) from Firebird 5 — the application runs noticeably more stable with it.

Also, starting from Firebird 3, it's recommended to set the following parameter in firebird.conf:
DataTypeCompatibility = 3.0
Based on my tests, the application works significantly better and more reliably with these settings.


Best regards,
Maurog
« Last Edit: July 26, 2025, 02:07:43 pm by maurog »
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

mariuz

  • New Member
  • *
  • Posts: 46
    • http://flamerobin.org
Re: TurboBird for FireBird 5
« Reply #3 on: December 02, 2025, 01:24:28 pm »

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #4 on: December 08, 2025, 04:45:18 am »
Thank you, Mariuz, for the helpful hint and the additional information.

Regards,
Maurog.
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #5 on: February 17, 2026, 02:28:10 am »
I have uploaded the new version TurboBird_v1.2.1.1264.

Here is the latest release with changelog on GitHub:
https://github.com/mdadali/TurboBird/releases/tag/TurboBird_v1.2.1.1264

And here are several animated GIFs showing the new features:
https://www.firebirdforum.de/viewtopic.php?t=387&start=90

Best regards,
Maurog.
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

laguna

  • Sr. Member
  • ****
  • Posts: 348
Re: TurboBird for FireBird 5
« Reply #6 on: August 11, 2026, 07:45:04 am »
Hi! I saw your IBX-based TurboBird project and I have to say the porting is really great.

I've done some testing and wanted to share my feedback:

Linux Version: Tested with the binaries and it works very well; I really liked it.

Windows Version: Using the precompiled binaries, I encountered an error at startup while registering fbclient.dll.

Building from Source (Windows): To work around the problem, I downloaded the sources and recompiled it, but I encountered some difficulties:

Add-ons conflicted during installation.

The project was set to Linux instead of the default (this issue has been resolved).

It would be helpful, if possible, to align the add-ons with the latest stable version of Lazarus.

I haven't had a chance to try the macOS version yet, but I hope to do so this week.

Thank you so much for your great work!

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #7 on: August 20, 2026, 10:17:37 am »
Hi laguna,

thank you very much for your detailed feedback and professional testing!
I am very pleased that you like the Linux version so much and that you took the time to test TurboBird so thoroughly.

Current version:
In the meantime, TurboBird v1.2.1.1284 is the current version – several bugs have been fixed there.
The automatic update notification should inform you in the future as soon as a new version is available.

Regarding your points in detail:

1. Windows issues
I apologize for that. Unfortunately, I don't have a Windows machine and therefore can't test it myself. However, I will try to get a Windows computer so that I can fix these issues directly in the future.

2. macOS version
As far as I know, cross-compiling for macOS from Linux requires the appropriate Mac SDKs – which I don't have. It would therefore be very helpful if a Mac user could take over testing on a real Mac.

3. Build from source (add-on conflicts)
I will set up a new Linux machine, download the latest sources from GitHub and try to recompile TurboBird. I will then fix any errors that occur.

4. Project was set to Linux
After compilation, several scripts are run that handle version numbering, stripping binaries and zipping. Unfortunately, these scripts are only available for Linux. I don't know if I can change the project to "Standard" – but I will check it.

5. Align add-ons with the latest stable Lazarus version
I currently use Lazarus 2.2.6 because I also maintain the LazCAD project. An earlier attempt to switch to a newer Lazarus version failed due to GTK2 canvas issues (drawing surface).
For TurboBird, however, I will set up a separate Lazarus installation and bring it up to date.

Regarding the Windows binaries:
I would really be interested to know exactly what problem occurs with fbclient.dll:

What is the error message?

What happens when you start TurboBird?

Does the "Set Initial Firebird Client" window open?

What happens when you search for the client library?

What happens when you click the "Test" button?

Your answers would be very helpful – especially with regard to the issue that another Windows user reported (no close button on tabs). Perhaps it is related to a specific Windows version?

Currently I am working on the DBReader module (https://github.com/serbod/DBReader/releases), which I have integrated into TurboBird. The goal is to export the data read/recovered by DBReader as Firebird external tables.
As soon as I have finished that, I will take care of the issues you described – promised!

Thank you once again for your thorough testing and valuable feedback!

Best regards,
Mustafa.
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

laguna

  • Sr. Member
  • ****
  • Posts: 348
Re: TurboBird for FireBird 5
« Reply #8 on: August 21, 2026, 10:01:05 am »
Hi Mustafa,

Thanks for your detailed reply and the great work you are doing!

The big news I wanted to share is that I actually managed to compile TurboBird for both Windows and macOS using the latest version of Lazarus, 4.8!

To achieve this, I had to temporarily sacrifice a few features and update some missing files in the addons. Specifically, I had quite a bit of difficulty getting jvdesigner, pascalscript, and uib to cooperate, but in the end, I got it working.

If you are interested, I would be very happy to share this Lazarus 4.8 version with you. You could use it as a starting point to see what needs to be changed for newer Lazarus versions and cross-platform compatibility, especially since you don't have direct access to a Mac or Windows machine.

It would be amazing to create a Firebird SQL database manager that comes close to the power of IBExpert, but with the huge advantage of being fully functional across all 3 platforms (Linux, Windows, and macOS). Personally, I have one database on a Debian NAS and another on a TrueNAS; I currently manage both with IBExpert, but having a tool like TurboBird available natively on any OS would be a game changer.

Let me know if you'd like me to send you the files (I can send an archive or share it on GitHub). Also, feel free to use me as your dedicated tester for Windows and Mac!

Good luck

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #9 on: August 21, 2026, 11:55:00 am »
Hi laguna,

this is simply fantastic! I am truly impressed that you managed to compile TurboBird for Windows and macOS with Lazarus 4.8 – even though you had to temporarily sacrifice some features. Respect!

Regarding your offer to send me the files:
I would rather suggest: if you have the time and interest, let's work on a common codebase. I will look into how I can set it up on GitHub so that you can co-maintain TurboBird and contribute directly.

About IBExpert:
Yes, that was exactly the goal of TurboBird from the very beginning. I already mentioned in the German Firebird forum that the long-term vision is to create a tool that can keep up with IBExpert – but freely accessible to everyone on all platforms.
I started renovating TurboBird about a year ago, and a lot has happened since then. But I am currently the only one actively working on it. It would be great if several capable developers like you would join in – then we would reach our goal much faster.

We have excellent backing, by the way:

Tony Whyman (developer/maintainer of IBX4Lazarus) is active in the forum and answers questions promptly.

Gerd Schönfeld from the German Firebird forum is a highly committed tester – he keeps me busy with his tests and questions (in a positive way! 😄).

Peter from this forum is also a really capable developer who has tested TurboBird extensively.

This message here is an invitation to all developers who wish for a free, cross-platform Firebird admin tool.

TurboBird's source code is purely object-oriented and actually quite well structured – any experienced developer would find their way around quickly. The solid framework is in place, the goal is crystal clear.

I would be really delighted if you would join in!
Please let me know if you are interested.

I look forward to your reply.

Thank you and best regards,
Mustafa

And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

Thaddy

  • Hero Member
  • *****
  • Posts: 19805
  • Glad to be alive.
Re: TurboBird for FireBird 5
« Reply #10 on: August 21, 2026, 12:08:08 pm »
That is a great piece of software! Thanks.
The array issue can be solved with the [attribute] support in trunk, although that may be early days for most. 
Any "programmer" that knows only one programming language is not a programmer

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #11 on: August 21, 2026, 06:08:57 pm »
@Thaddy

Thank you very much for your feedback!

The array issue has since been resolved – I have migrated the entire project to IBX, and IBX supports Firebird arrays out of the box.

Regarding your comment "That is a great piece of software!" –
that makes me very happy!

I have worked on many platforms myself (Commodore 64 (as a hobby), Microsoft OS, Linux, and IBM mainframe with OS/380, PL/1, COBOL, etc.).
But when you develop with a platform like FPC/Lazarus, the result speaks for itself. It doesn't surprise me that more and more developers are switching to this platform.

A big thank you to the FPC/Lazarus team and the entire open-source community!

Best regards,
Mustafa.
« Last Edit: August 21, 2026, 06:11:17 pm by maurog »
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

laguna

  • Sr. Member
  • ****
  • Posts: 348
Re: TurboBird for FireBird 5
« Reply #12 on: August 21, 2026, 07:14:19 pm »
Hi maurog and everyone,

I wanted to share a project I've been working on with the community. I have created a new fork of TurboBird that successfully compiles and runs with Lazarus 4.8.

This fork was generated from the excellent version by maurog, so a big thanks to him for providing such a solid foundation.

In order to get it to compile with the latest version of Lazarus (and keep it cross-platform), I had to temporarily sacrifice and disable a few features.

In the next few days, I will publish a detailed follow-up post explaining exactly what was modified, which components/features were temporarily excluded, and what the next steps are to restore them.

You can already find the source code and check it out here:
https://github.com/scozzaro/TurboBird_for_laz_48/tree/main

If anyone is interested in testing it or wants to help me restore the missing features, any contribution is highly appreciated!

Cheers and happy coding!

maurog

  • Full Member
  • ***
  • Posts: 110
Re: TurboBird for FireBird 5
« Reply #13 on: August 22, 2026, 01:36:01 am »
@laguna
Wonderful! And thank you for the appreciation.
The original author (Motaz) of TurboBird will certainly be delighted about this news as well.
Thank you.
And yes, Lazarus is definitely a beast – it comes with everything you need, but sometimes also more than you expect. 😅 (Chat-GPT)

laguna

  • Sr. Member
  • ****
  • Posts: 348
Re: TurboBird for FireBird 5
« Reply #14 on: August 24, 2026, 05:05:33 pm »
Update Unit uPSRuntime.pas for windows 32bit

 

TinyPortal © 2005-2018