Anyone using ElevateDB? lazarus / 16-Databases ---------------------------------------------------------------------- dpremus · 2020-02-10 07:36 I'm using NexusDB with Delphi without any problem for the last 15 years, but there is no Linux and Lazarus version of NexusDB and this is the reason why I'm thinking about moving to ElevateDB. (https://www.elevatesoft.com/) So If anyone using ElevateDB I would like to know how stable and reliable is ElevateDB? Regards Danijel ---------------------------------------------------------------------- Thaddy · 2020-02-10 07:52 Is there a specific reason to want to use a commercial product? There are many opensource solutions with equal or better features and stability. (implied by user scale) Note that the source editions - according to their website also advertise Lazarus as a target (probably only windows), so contact the nexusdb and ElevatDb service desk. ---------------------------------------------------------------------- dpremus · 2020-02-10 17:24 Quote from: Thaddy on February 10, 2020, 08:52:47 amIs there a specific reason to want to use a commercial product? There are many opensource solutions with equal or better features and stability. (implied by user scale) Note that the source editions - according to their website also advertise Lazarus as a target (probably only windows), so contact the nexusdb and ElevatDb service desk. I always prefer open source solutions, but I didn't find the features that I need. MariaDB and PostgreSQL are great databases but to heavy for my needs. SQLite is not client-server, so it seems that FirebridSQL is closest to NexusDB regarding the size and features. The reason why I chose NexusDB instead of Firebird 15 years ago is that NeuxsDB support cross-database query, "select into #table" syntax with (#context-local, ##session-local and ###global temp. tables) that is great for reporting, you can mix memory tables with ordinary tables and everything is written in object pascal. In the meantime, FirebirdSQL has progressed but still doesn't support those features. Seems that I will go with Firebird. If you know any other similar relational open-source database, I would like to test. ---------------------------------------------------------------------- Thaddy · 2020-02-10 19:11 Quote from: dpremus on February 10, 2020, 06:24:47 pm[The reason why I chose NexusDB instead of Firebird 15 years ago is that NeuxsDB support cross-database query, "select into #table" syntax with (#context-local, ##session-local and ###global temp. tables) that is great for reporting, Well Firebird supports external tables. That feature comes close to what you want. Note that you are then making another niche choice, although an open source one. ---------------------------------------------------------------------- dpremus · 2020-02-10 20:04 Quote from: Thaddy on February 10, 2020, 08:11:58 pmQuote from: dpremus on February 10, 2020, 06:24:47 pm[The reason why I chose NexusDB instead of Firebird 15 years ago is that NeuxsDB support cross-database query, "select into #table" syntax with (#context-local, ##session-local and ###global temp. tables) that is great for reporting, Well Firebird supports external tables. That feature comes close to what you want. Note that you are then making another niche choice, although an open source one. Firebird External tables are more suitable for logs. You can only "insert", "select" and "drop" from Firebird external tables. The current Firebird version (3.0) only supports global temporary tables. You can create global temporary tables with create table syntax. Here is an example of how you can use a break some SQL to a few simpler SQL and use the result of the previous SQL in the next SQL. These temporary tables are only visible during the transaction and in a multiuser environment, you can be sure that nobody will destroy your tables. If two users execute the same report at the same time and you have global tables then the second user will override temporary tables of the first user. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  q.Sql.Text := 'Select SubString(VrTran from 1 for 8)  as Dat, t.Opis as Terminal, l.IdGrupa' +      ' into #muplog' +      ' from MupLog as l, Term as t' +      ' where l.Term = t.RbrTerm and VrTran > :xTmBeg and VrTran <= :xTmEnd;' +     ' Select Dat, Terminal, IdGrupa, Count(*) as BrDiz ' +      ' into #muplog2' +      ' from #muplog group by Dat, Terminal, IdGrupa;' +     ' Select  l.*, g.Caption as Razlog' +      ' from #muplog2 as l left outer join MupGrp AS g ON l.IDGrupa = g.MUPRBR' +      ' order by Dat;';    q.Params.ParamByName('xtmBeg').AsDateTime:= sTmBeg;  q.Params.ParamByName('xtmEnd').AsDateTime := sTmEnd;  q.Open; some other database use "create table as ..." syntax for this. But this feature is "nice to have" but is not crucial. ---------------------------------------------------------------------- vfclists · 2020-02-10 22:08 Quote from: Thaddy on February 10, 2020, 08:11:58 pmQuote from: dpremus on February 10, 2020, 06:24:47 pm[The reason why I chose NexusDB instead of Firebird 15 years ago is that NeuxsDB support cross-database query, "select into #table" syntax with (#context-local, ##session-local and ###global temp. tables) that is great for reporting, Well Firebird supports external tables. That feature comes close to what you want. Note that you are then making another niche choice, although an open source one. I don't think PostgreSQL is that heavy. You can tune it to use minimal resources. It is something PostgresSQL has always been good at. Giving that hardware capabilities have greatly improved over the years the resource usage won't impact modern machines unless it is being deployed on very old hardware. I was using Postgres 8 on VMs with 192Mb Ram some years ago and I never had problems. ---------------------------------------------------------------------- PeterEvans · 2020-02-13 03:28 With regard to ElevateDB. It is my understanding that ElevateDB will work with FreePascal on Windows. ElevateDB works with Delphi on Windows. It also works with Mac but I am not sure if this is with FreePascal. I do know there is a Mac version as a recent Build fixed some problem or other in the Mac version. Elevate Software who make ElevateDB, plan on a Linux version. This is for Delphi creating programs for Linux, so this will be command line not GUI. The priority for Elevate Software is another product called ElevateWeb. They plan on bringing out Version 3 in Beta. Only when that Beta version is released will they be working on the Linux version of ElevateDB. Now, here is my conjecture. When they do release ElevateDB, Linux version, for Delphi command line, how much extra effort will there be in releasing ElevateDB, Linux version, as a GUI, for FreePascal? Not much I would expect. ---------------------------------------------------------------------- dpremus · 2020-02-25 10:16 Thank you all for your replies. After lots of testing, I decided to go with FirebridSQL. I made tests on win7/10, Linux, and Linux on Raspberry PI and decide to use IBX. https://www.mwasoftware.co.uk/ibx I was testing with DevArt IBDAC too, but IBDAC doesn't compile under ARM Linux on Raspberry Pi. Seems the only thing that I need to be aware of with Firebird is how to handle transactions. In Firebird even the "Select" statement is a transaction. ---------------------------------------------------------------------- PeterEvans · 2020-02-26 04:53 According to the website of Elevate Software: ElevateWebBuilder 3 Beta was nominally released on 24 February 2020. This should mean that the step of interest to me, namely the Linux side of ElevateDB, should come out next. At least I hope so. ---------------------------------------------------------------------- teos · 2020-03-08 19:54 Quote from: dpremus on February 25, 2020, 11:16:41 amThank you all for your replies. After lots of testing, I decided to go with FirebridSQL. I made tests on win7/10, Linux, and Linux on Raspberry PI and decide to use IBX. https://www.mwasoftware.co.uk/ibx I was testing with DevArt IBDAC too, but IBDAC doesn't compile under ARM Linux on Raspberry Pi. Seems the only thing that I need to be aware of with Firebird is how to handle transactions. In Firebird even the "Select" statement is a transaction. I use IBX with Delphi on a daily basis but I would recommend SQLDB in Lazarus. Not only because they have the clientdataset included. And I supposed that the amount of SQLDB users is a lot more then IBX. ---------------------------------------------------------------------- thehidden · 2020-05-08 20:42 I am using ElevateDB. Partly Lazarus, partly RAD Studio for the Server edition. They have complete Database encryption at table level included in the engine. No need for any third party software. Look at the price for encryption at SQLite, etc. The Lazarus version can be used to have shared Multiuser Databases without server. Record locking, etc. is done by the engine. You need only a shared network folder. Use transactions in this case. As usual, as more users - as slower the respond time. I use it for small installations with limited concurrent users. When somebody copy the database from the shared network folder - let him do it. The database is encrypted. ---------------------------------------------------------------------- PeterEvans · 2021-01-19 23:12 >>According to the website of Elevate Software: ElevateWebBuilder 3 Beta was nominally released on 24 February 2020. Elevate Web Builder version 3 was released on 13 January 2021. >>This should mean that the step of interest to me, namely the Linux side of ElevateDB, should come out next. At least I hope so. Hopefully this step will not be long away. ---------------------------------------------------------------------- PeterEvans · 2021-08-08 04:51 Elevate Software have made, in my opinion, a significant update to ElevateDB, their primary database product. In this case the product release (9 July 2021) is way in advance of the marketing. Here is a link to their blog:-   https://www.elevatesoft.com/blog?action=view&id=elevatedb_235_with_l inux_and_macos_support_released Here is an extract of the main points :-     "ElevateDB now includes support for 64-bit MacOS and Linux in RAD Studio 10.4.     ElevateDB now includes support for 64-bit Linux in Lazarus 2.x (FPC 3.2.0).     ElevateDB now includes a 64-bit Linux version of the ElevateDB Server that can be executed as a command-line application, as well as a Linux service/daemon. Please see the Starting and Configuring the ElevateDB Server for more information on how to install and start a Linux instance of the ElevateDB Server."