Jump to content
Arnaud Bouchez

mORMot running on Delphi 10.3 Rio

Recommended Posts

Now that Delphi 10.3 Rio is out, we had to ensure that our little mORMot would run with this revision.
Since we don't make any commercial software with Delphi any more (we switched to FPC), I downloaded the Community Edition.
We disabled the Error Insight feature, which seems not very stable especially with our mORMot complex units - as with previous Delphi versions.

 

In respect to the previous "Starter" editions, this CE version includes everything you expect for good work: Win32 + Win64 + OSX + mobile compilers, and even the source code of the RTL and enabled command-line compilers!
The IDE seems really refreshed with its new layout. You feel at home and with some modern and fresh air!
Great work Embarcadero!

 

Of course, the "Pro" and "Architect" features are missing (like FireDAC, DataSnap or RADServer).
But mORMot is self-contained even for the database access, so with the CE you can write full-features REST/SOA client-servers and MVC web applications, with a simple ORM and high-performance OleDB/ODBC database access to SQlite3, MSSQL, Oracle, Firebird, MySQL and others (by-passing the TDataSet class for better performance) and even NoSQL like MongoDB.
Ensure you follow the Embarcadero license terms when you use mORMot with the Community Edition.

 

With Rio, the main breaking change was that the PCRE API switched from an UTF-8 to UTF-16, and did hide the UTF-8 function calls.
But after a small patch, now everything works as expected - at least for our regression tests.

 

See http://blog.synopse.info/post/2018/11/24/mORMot-running-on-Delphi-10.3-Rio

  • Like 6
  • Thanks 1

Share this post


Link to post
On 11/24/2018 at 2:57 PM, Arnaud Bouchez said:

Of course, the "Pro" and "Architect" features are missing (like FireDAC, DataSnap or RADServer).

That should probably be >"Enterprise" and "Architect" features are missing<, because CE is supposed to have the same feature set as Professional.

Share this post


Link to post

@dummzeuch The feature matrix (page 18ff) states that FireDAC is not in CE - see "Windows/Mac enterprise database support, including MySQL, MariaDB, Microsoft SQL Server, Oracle Database, InterBase, PostgreSQL, Informix, Sybase SQL Anywhere, Microsoft Access, IBM DB2 Server, Firebird, Advantage Database, generic ODBC driver" is not checked, and also MongoDB, most/some WebBroker and DBExpress features, DataSnap and RadServer. 

Edited by Arnaud Bouchez

Share this post


Link to post
37 minutes ago, Arnaud Bouchez said:

@dummzeuch The feature matrix (page 18ff) states that FireDAC is not in CE - see "Windows/Mac enterprise database support, including MySQL, MariaDB, Microsoft SQL Server, Oracle Database, InterBase, PostgreSQL, Informix, Sybase SQL Anywhere, Microsoft Access, IBM DB2 Server, Firebird, Advantage Database, generic ODBC driver" is not checked, and also MongoDB, most/some WebBroker and DBExpress features, DataSnap and RadServer. 

This features are missing in Pro, too. That was the fact Thomas wanted to tell you. You can access the DBMS locally but not on a "external" server (other than the machine the program is running).

Share this post


Link to post

So MySQL database + FireDAC- mORMot-Windows service could be compiled and run even with Community Edition, if the database and the service are located on the same machine.

Share this post


Link to post
Guest
1 hour ago, Arnaud Bouchez said:

@dummzeuch The feature matrix (page 18ff) states that FireDAC is not in CE - see "Windows/Mac enterprise database support, including MySQL, MariaDB, Microsoft SQL Server, Oracle Database, InterBase, PostgreSQL, Informix, Sybase SQL Anywhere, Microsoft Access, IBM DB2 Server, Firebird, Advantage Database, generic ODBC driver" is not checked, and also MongoDB, most/some WebBroker and DBExpress features, DataSnap and RadServer. 

The feature matrix tells us for FireDAC Multi-Device Data Access Library and Professional/Community Edition:

Quote

Support for local databases, including Microsoft Access database, SQLite and MariaDB database, IB ToGo / IBLite, InterBase on localhost, MySQL Embedded, MySQL Server on localhost, Advantage Database local engine, PostgreSQL on localhost, Firebird Embedded, Firebird on localhost

and you will get no source code for FireDAC!

Edited by Guest

Share this post


Link to post
1 hour ago, Kryvich said:

So MySQL database + FireDAC- mORMot-Windows service could be compiled and run even with Community Edition, if the database and the service are located on the same machine.

If you use the mORMot layer with direct MySQL ODBC provider - or even better https://sourceforge.net/projects/zeoslib/ - you have a 100% Open Source access with the Community Edition, also for remote servers.

The mORMot framework has its own database access layer, which by-pass DB.pas and the TDataSet, and work directly from/to JSON on the database provider, for best efficiency.
You can use FireDAC as DB access layer with mORMot, but this is not mandatory - and even slower in practice.

See https://synopse.info/forum/viewtopic.php?pid=28311#p28311 for actual benchmark numbers.
From this test, ZDBC direct access to MySQL is more than 3 times faster than FireDAC, to retrieve individual objects (7138/s vs 2171/s). This includes the ORM layer, and the JSON serialization/unserialization.
Of course, a local SQLite3 database is the fastest (by far), and fits very well the MicroServices paradigm.

  • Like 1

Share this post


Link to post
3 hours ago, Kryvich said:

The Zeos test results are astounding. What about the capabilities of this library? Does it support the on-demand rows fetching, rows pagination, delayed fetching (to postpone a BLOB and nested datasets loading)? FireDAC can do it: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Fetching_Rows_(FireDAC)

After the parts can not.
ZEOS is free, fast and works with Lazarus (Windows and Linux) and Delphi (currently only Windows32/64) from Delphi7 to Delpi 10.3 Rio.
And it works well with mORMot.

http://zeoslib.sourceforge.net/viewtopic.php?f=50&p=106447#p106237

  • Like 1

Share this post


Link to post

So now (among other) we have FireDAC - a DAC for Delphi packed with advanced features, and the lightning fast Zeos - a free and open source lib. Both libraries can work in conjunction with mORMot. Having a choice is always good.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×