I have written a few times on a client-server database for Lazarus with both client and server in Pascal.
After a lot of work, it feels like an honour to announce that I have developed a full client-server database with support for Lazarus, based on TDataset but also on TeowinDatabase which is record based. The database supports single user, network user, client-server, encryption, user access and a subset of SQL.
When used in Client-server mode, the client can work both connected and disconnected, since it supports offline modifications.
Clients and Servers can be exchanged between Lazarus and Delphi (7-XE2) and both Windows and Linux.
TeowinDatabase is the database engine which can connect to a local database file, TeowinClient connects to a TeowinServer. TeowinDataset connects either to a TeowinDatabase or to a TeowinClient.
TeowinDataset is derived directly from TDataset, which makes it compatible with Delphi.
Network communication is done with Indy 10 (at least for now).
Current state of development:
- Need to write a database management tool and some testing examples.
- Need to find a way to get runtime even assignment working (in the package source with @,
in a project without), seems I missed something there.
- Write a page explaining how a Teowindataset can be connected to a local database and to the Teowin client which takes care of communication with the server.
I have tested:
1. Use of a database generated in Delphi 2007 in Delphi XE and Lazarus on Windows and Linux.
2. Connect a Delphi 2007 client to a server compiled in XE (unicode/non unicode).
3. Connect a Lazarus Client to a Delphi server (on Windows and Linux).
The final product will be commercial, not clear of exact conditions.
For those who followed my threads about native client-server databases: I'm looking for volunteers to test my effords ;-)