Darian Miller 366 Posted May 6, 2019 Starting a new project from scratch - since FireDAC is now bundled with Delphi and it contains support for SQLite, are there any specific benefits for using LiteDAC (https://www.devart.com/litedac/), DISQLite3 (https://www.yunqa.de/delphi/products/sqlite3/index) or other alternatives? Share this post Link to post
Andrea Raimondi 13 Posted May 7, 2019 Depends on what edition you have. If you have Pro, the main advantage with LiteDAC is that you can then use other providers as well to connect to a remote datababse. Share this post Link to post
Edwin Yip 154 Posted May 7, 2019 An alternative is mORMot, its core is based on SQLITE3, you don't even need the external sqlite3.dll - you statically link the .obj file into your executable. note: you can use the sqlite db functions alone, without using its excellent ORM layer or the http/rest server modules. But I suggest take advantage of it's ORM for CURD - it'll save a lot of your time! https://synopse.info/files/html/Synopse mORMot Framework SAD 1.18.html#TITLE_142 2 Share this post Link to post
Edwin Yip 154 Posted May 7, 2019 PS, I've never used any db components from DevArt, but I own another product of them, and I believe they provide good quality products. I also own a license of DiSqlite3, it's very fast and full-featured, I must say. And the support from Ralf the developer is great - he usually don't say anything unrelated, but just gives you detailed answers and suggestions of the technical issue you have. But don't forget as a free, open source project, the support of mORMot is also responsive and quick to fix issues - don't just listen to me, look at their forums :) Share this post Link to post
chkaufmann 17 Posted May 7, 2019 2 hours ago, edwinyzh said: PS, I've never used any db components from DevArt, but I own another product of them, and I believe they provide good quality products. Yes Devart db components are reliable and stable. I use UniDac since years and it works with no problems with Firebird, MS SQL, Postgresql and Oracle. Christian Share this post Link to post
Guest Posted May 8, 2019 IMHO the foremost reason for not using FireDAC is no sources (Pro). Had i had the sources (Enterprise?) i would start using FireDAC. Share this post Link to post
Arnaud Bouchez 407 Posted May 8, 2019 Note that the SQlite3 version embedded with FireDAC tends to be updated at a slow pace, and stick to the Delphi release. It is currently 3.23.1 in Delphi 10.3, whereas the current is 3.28. With an OpenSource or third-party solution, you may be able to update SQlite3 without upgrading the compiler. I have seen requests to upgrade SQlite3 for regulatory or security reasons. 3.23.1 is known to be vulnerable, as reported e.g. by https://www.cvedetails.com/vulnerability-list/vendor_id-9237/Sqlite.html and https://www.zdnet.com/article/sqlite-bug-impacts-thousands-of-apps-including-all-chromium-based-browsers/ 2 Share this post Link to post
Darian Miller 366 Posted May 8, 2019 1 hour ago, Arnaud Bouchez said: It is currently 3.23.1 in Delphi 10.3, whereas the current is 3.28. That hit the nail on the head. I was missing that major issue. In addition, the last update to LiteDAC was November. A possible solution would be to dynamically link and keep that DLL up to date from the official source but I'd rather have statically linked. For future reference: http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_SQLite_database_(FireDAC) https://stackoverflow.com/questions/34486325/how-to-remove-static-linking-from-firedac-sqlite https://stackoverflow.com/questions/23187853/delphi-sqlite-wrapper-with-static-linking-and-encryption-support/23193690 http://blog.synopse.info/post/2018/03/12/New-AES-based-SQLite3-encryption https://synopse.info/forum/viewtopic.php?pid=26794#p26794 In their Rio doc link above, they are using 3.9.2. I don't have 10.3 installed currently so I cannot confirm. It's been a number of years since I tried mORMot... time to dig into it again! Thanks Share this post Link to post