Take a look at the tiOPF (Object Persistence Framework) - I've used it for the last 15 years in production code, and allows for Client/Server or 3-tier development, without changing a single line of code [when switching between the two]. tiOPF also manages the Create/Read/Update/Delete with Transactions for you. It also includes an [option] Model-GUI-Mediator implementation (similar idea to MVC or MVP), which allows you to hook up your business objects with GUI widgets - it makes standard GUI widgets (eg: TEdit, TComboBox, TStringGrid etc) "object-aware" and does two-way synchronisation (change the Object and the UI gets updated automatically - and vice versa). It also supports multiple DB components (SqlDB, Zeos, DOA, ADO, IBX etc) and multiple databases (Firebird, NexusDB, MySQL, Oracle, MS SQL Server etc) and even text file storage (XML). Switching between these is simply a change in a compiler define, and a recompile of your project.
There are tons of documentation, years of knowledge and FAQs in the non-expiring NNTP support newsgroup and stacks of examples (demos and real-world apps). Over 1700+ unit tests are run ever 2 hours 24/7 to makes sure the framework is always in a stable state.
tiOPF:
http://www.tiopf.comLazarus+tiOPF wiki page:
http://wiki.freepascal.org/tiOPFtiOPF SourceForge project:
https://sourceforge.net/projects/tiopf/