Firebid - IBX - embedded version lazarus / 16-Databases ---------------------------------------------------------------------- Nicole · 2022-11-14 10:21 I use Firebid 2.5. and within some weeks I want to upgrade. Where to? There is Firebird 4. Is it the best choice? IBX works until Firebird 3. And an embedded version of Firebird is until 2.5.? Can this be right? Will there be an upgrade of IBX for Firebird 4 in the near future? Or is it a bad idea in general to want the most recent version? Thank you for all discussion ideas. ---------------------------------------------------------------------- Zvoni · 2022-11-14 10:28 You're definitely only using the embedded Version? Not the Server- based Version? And there are no plans to (maybe) move it to server-based? If yes, then IMO Firebird is the wrong choice for filebased Database (But that's my personal opininion. Never liked Firebird). SQLite, and done with it ---------------------------------------------------------------------- MichaelBM · 2022-11-14 13:15 Our enterprise system runs on Firebird 2.5 and will be upgraded to Firebird v4 during the Christmas holidays. This is from SQLite.org: SQLite is not directly comparable to client/server SQL database engines such as MySQL, Oracle, PostgreSQL, or SQL Server since SQLite is trying to solve a different problem. SQLite does not compete with client/server databases. SQLite competes with fopen(). ---------------------------------------------------------------------- rvk · 2022-11-14 13:32 Quote from: Nicole on November 14, 2022, 11:21:19 amIBX works until Firebird 3. And an embedded version of Firebird is until 2.5.? IBX for Lazarus also works for Firebird 4 (embedded and server). See the note from tony. Quote from: tonyw on August 15, 2021, 02:26:22 pmThe current version of IBX supports Firebird 4 with the exception of the IBATCH interface. IBATCH  support is held back while Firebird issues are being resolved, see https://github.com/FirebirdSQL/firebird/issues/6900. To download ibx go to https://www.mwasoftware.co.uk/ibx If the plan is to migrate the enterprise system to Firebird 4 over Christmas, it's best to go for FB 4 now so you can check out the problems you might face. ---------------------------------------------------------------------- MichaelBM · 2022-11-14 14:35 QuoteIf the plan is to migrate the enterprise system to Firebird 4 over Christmas, it's best to go for FB 4 now so you can check out the problems you might face. When everyone else is on vacation our IT department will be working during the Christmas holidays (as always ) with migration. ---------------------------------------------------------------------- Zvoni · 2022-11-14 15:07 Quote from: MichaelBM on November 14, 2022, 03:35:52 pmQuoteIf the plan is to migrate the enterprise system to Firebird 4 over Christmas, it's best to go for FB 4 now so you can check out the problems you might face. When everyone else is on vacation our IT department will be working during the Christmas holidays (as always ) with migration. Since you answered and not nicole, i take it you're working for the same company. In that case: No, makes no sense to switch to another DBMS. rvk said everything needed to be said ---------------------------------------------------------------------- Nicole · 2022-11-15 08:07 Thank you for the answers. So I think I will move to FB 4 after Christmas. Yes, I use a server based FB now. But it would be nice to copy all my work to an USB-stick and put it into my pocket. The VM with the drivers etc. is rather huge, and the copy process takes its time and its space. Why do you prefer SQLite? Firebird is really slim and powerful. And it works already. ---------------------------------------------------------------------- Zvoni · 2022-11-15 12:00 Quote from: Nicole on November 15, 2022, 09:07:17 amThank you for the answers. So I think I will move to FB 4 after Christmas. Yes, I use a server based FB now. But it would be nice to copy all my work to an USB-stick and put it into my pocket. The VM with the drivers etc. is rather huge, and the copy process takes its time and its space. Why do you prefer SQLite? Firebird is really slim and powerful. And it works already. Personal preference (like pretty much everything in life. I'll never understand why people like Hip-Hop-Music). And: at least to me, it appears, that SQLite has a much bigger User- base than FB, so finding support for SQLite appears easier. But that's my impression. Might be completely wrong. And i don't/won't say, that FB is a "bad" DBMS, since i really don't have that much experience with it. OTOH, since i have to handle different DB-"Formats" on a regular Basis (IBM DB2 on an iSeries at Work, sometimes "misusing" Excel-Worksheets as a DB-Table, CSV's, SQLite for config-Stuff and privately, MySQL privately), i've changed my "approach" how to handle Databases. I've worked out a systematic for me, which basically can be summed up with "Shoot and forget", independent which DBMS is on the backend, without having to change a single line of code in my Frontend, if the backend gets changed, say from SQLite to MySQL to PostGres To MSSQL To DB2 To my dirty socks, whatever. ---------------------------------------------------------------------- tonyw · 2022-11-15 22:50 For the record, Firebird 4 IBatch now works and is fully supported by IBX. Also, since Firebird 3, the embedded and remote server are the same executeable. Quote from: rvk on November 14, 2022, 02:32:24 pmQuote from: Nicole on November 14, 2022, 11:21:19 amIBX works until Firebird 3. And an embedded version of Firebird is until 2.5.? IBX for Lazarus also works for Firebird 4 (embedded and server). See the note from tony. Quote from: tonyw on August 15, 2021, 02:26:22 pmThe current version of IBX supports Firebird 4 with the exception of the IBATCH interface. IBATCH  support is held back while Firebird issues are being resolved, see https://github.com/FirebirdSQL/firebird/issues/6900. To download ibx go to https://www.mwasoftware.co.uk/ibx If the plan is to migrate the enterprise system to Firebird 4 over Christmas, it's best to go for FB 4 now so you can check out the problems you might face. ---------------------------------------------------------------------- Nicole · 2022-11-16 09:23 QuoteFor the record, Firebird 4 IBatch now works and is fully supported by IBX. What does QuoteFirebird 4 IBatch mean / refer to? ---------------------------------------------------------------------- Thaddy · 2022-11-16 09:32 Side note: I find it very, very funny that Firebird lovers explain embedded as having dependencies with external binaries. That is plain silly. Embedded not even implies that should be necessary, it is part of a single executable. (even a shared library is dubious for embedded).E.g. Sqlite is truly embedded when linked statically, which Firebird not even supports afaik. ---------------------------------------------------------------------- tonyw · 2022-11-17 14:11 Quote from: Nicole on November 16, 2022, 10:23:33 amQuoteFor the record, Firebird 4 IBatch now works and is fully supported by IBX. What does QuoteFirebird 4 IBatch mean / refer to? IBatch is an interface provided by the Firebird 4 client that allows update or insert statements to be repeatedly executed with different parameter values each time. Instead of each individual execution being required to complete before the next one is started, each parameter set is appended to a local buffer and then sent as a single operation "across the wire" to the server. A single response is then returned when all updates/inserts in the buffer have been completed. The purpose of IBatch is to improve performance when a large number of consecutive updates/inserts are preformed. IBX supports IBatch via its low level Firebird Pascal Interface. It is not available for use with TIBDataset, TIBTable, etc. See 5.4.2.4 in the IBX User Guide. ---------------------------------------------------------------------- tonyw · 2022-11-17 14:21 Quote from: Thaddy on November 16, 2022, 10:32:11 amSide note: I find it very, very funny that Firebird lovers explain embedded as having dependencies with external binaries. That is plain silly. Embedded not even implies that should be necessary, it is part of a single executable. (even a shared library is dubious for embedded).E.g. Sqlite is truly embedded when linked statically, which Firebird not even supports afaik. I am not sure about whether this forum is the right place to have arguments about the merits of static vs dynamic linking. I've only ever built dynamic link libraries for Firebird, but if you really wanted to, I don't see a good reason why you could not build static link libraries for Firebird (e.g. if you wanted to distribute your executable as firmware). With Firebird, the term "Embedded" means that the database engine is running as part of the user process, is always local, and shares the same privileges as its user. Whether you link the database engine statically or dynamically into your user executable should only affect the way the program is loaded rather than how it is used.