View Single Post
Old 7th October 2019, 06:34 AM
chris chris is offline
Junior Member
Join Date: May 2015
Posts: 16
Default Mobile Client Library


I'm considering releasing a set of client components to allow accessing NexusDB from Android and iOS/OSX devices. I've been using the code in my own projects but never found the time to convert them to an actual component library, but I have now and I'm wondering if there's any demand before I spend more time writing an installer etc.

There are 5 components in the set:

Server Component:
TOSNXServer (Windows Only): HTTP(s) Server component that links to a TnxServerEngine and provides the actual data to the client. This supports Indy and RTC (StreamSec2 is needed for ssl with RTC, not with Indy). It's possible to write additional wrappers to add support for other HTTP libraries.

Client Components (Windows, Android, iOS, OSX):

TOSNXDBConnection: Handles the communication between the device and the windows server. Uses http on lan and HTTPS on wan, supports GZIP and Deflate.

TOSNXDBSession: Selects the alias and allows to set the NexusDB user

TOSNXQuery: Provides access to the actual data via SQL. This is a TDataset descendant so provides many of the normal properties and methods. It is a disconnected model so it downloads the data to the device in a single trip. It supports paging (to limit the amount of data sent to the device). This is readonly with all updates done in SQL (if you're not used to using SQL for updating, it really is pretty easy so don't be put off). Transactions are supported and the component works in blocking mode or in thread mode using anonymous procedures.

TOSNXStoredProc: Provides access to stored procedures on the server.

If there's enough interest I would offer the library for ?50 per developer (1 year of updates) with a 30 day no-questions money back guarantee (I don't want to have to create a trial so you'd have to buy it to try it).

This framework uses generics and anonymous methods and I've only tested the components on Rio (the code has been working on earlier releases though) so probably won't work on older releases of Delphi.

If you'd be interested please reply and let me know. I'd like to release an alpha in the next week or so.