#1  
Old 7th December 2020, 03:47 AM
chris chris is offline
Junior Member
 
Join Date: May 2015
Posts: 16
Default Get your Nexus/ADO data on iOS, Android, and OSX!

Hi

We've recently spent a little time polishing up our Mobile Client Library, fixing bugs and adding features.

I've created a sneak peak video (sorry, it's done very quickly without any editing), showing how you can access your NexusDB data on Android, the video's at https://www.onyxsoftware.co.uk/osclC...SclNexusDB.mp4

With the library you can create a webserver, a data server, and process Server Tasks. So this could be used as your stop gap until NexusDB have native components for the various platforms.

The library supports all Nexus DB datatypes, and also provides seamless updates and editing. It also supports automatic paging so you don't have to display thousands of records to your user.

We can't create a trial version as the component needs to be compiled against your installed version of NexusDB, so instead we're offering a no-questions-asked 30 day money back guarantee.

If there's any interest then we'll add the binaries to a zip so you can try them yourself, please comment on this post if you want us to provide this.

We've not settled on a price for the library yet (comments welcome ).

Regards

Chris
www.onyxsoftware.co.uk
  #2  
Old 7th December 2020, 10:43 AM
Eivind Bakkestuen
 
Posts: n/a
Default Re: Get your Nexus/ADO data on iOS, Android, and OSX!

> With the library you can create a webserver, a data server, and
> process Server Tasks. So this could be used as your stop gap until
> NexusDB have native components for the various platforms.
>
> The library supports all Nexus DB datatypes, and also provides
> seamless updates and editing. It also supports automatic paging so
> you don't have to display thousands of records to your user.


Hi Chris,

It's always nice to see new thirdparty supporters!

You may want to say something about how your library compares to our
Ado.NET provider, which appear to support the same platforms that you
do? How would it compare to TMS RemoteDB?

Would a recompile of the NexusDB Server we supply be needed to add
support for your library?


--

Eivind [NX]
  #3  
Old 7th December 2020, 09:09 PM
chris chris is offline
Junior Member
 
Join Date: May 2015
Posts: 16
Default

Hi Eivind

Thanks for the pointers.
To be honest, I didn't realise that your ADO provider could be used outside of Windows, that's very good news for anyone looking to use NexusDB with Xamarin or similar.

Our library is aimed at Delphi users, in fact it's more that we wrote it for internal use, and then thought that it might be useful to others and also provide a small additional income stream for us.

The library was written to drop into our existing codebase as seamlessly as possible, for example, in our main application we tend to use a pattern for our classes such that we use a TnxQuery to load and save data. We wrote TosclNXQuery to be as compatible as possible with TnxQuery so that we could use it as a direct replacement, and then we ifdef the appropriate control depending on the platform. This means that our backend code (classes and the like) are entirely platform agnostic in terms of data persistence

i.e
Code:
  {$ifdef MSWINDOWS}
  TOSQuery = TnxQuery;
  TOSStoredProc = TnxStoredProc;
  EOSDatabaseError = EnxDatabaseError;
{$else}
  TOSQuery = TOSclNXQuery;
  TOSStoredProc = TOSclNXStoredProc;
  EOSDatabaseError = EOSBaseDatabaseError;
{$ELSE}

var
  Qry : TOSQuery;
begin
  Qry := TOSQuery.Create(nil);
  try
    Qry.SQL.Add('Select * from customers');
    Qry.RequestLive := true;
    Qry.Open;
    //Do stuff
  finally
    Qry.Free;
  end
end;
In this new version we've fixed some bugs and added some additional features so the now library works correctly with grids and data aware components, and most importantly, allows seamless editing and posting without writing any SQL. This only works with updatable queries, but the developer can fall back to writing SQL. The library also provides overloaded threaded methods to keep the UI responsive.

I'm not very familiar with RemoteDB as we wrote this (AFAIK) before that was available (we've been using this in our app for some years now), but I'd say, for comparison, they have a common set of base features, ours provides the usual SQL methods, has a disconnected data model and automatic paging, StoredProcs, SSL, gzip, deflate, and doesn't require the user to know anything about http.

It uses Indy at the server, but we also provide a wrapper for RTC and it should be possible to write wrappers for other http libraries.

At the client side the library uses THTTPClient, though again it should be possible to replace this if the developer prefers a different library.

Our library also supports ADO. Our TosclADOQuery is readonly at the moment (updates are done via SQL which the developer must write), but, if we get any demand, we will aim to add support for automatic updating there too.

The server can be either a middleware server, or you can build support directly into a full NX server. Regardless, all communication is still done over HTTP(s). The library doesn?t use the NexusDB sockets. To use the library with NexusDB connect our TOSclNXDataserver to a TnxServerEngine, and that?s it. There?s no need to recompile the NexusDB stock server.

Finally, our library also offers some other goodies, it allows you to drop some components on a datamodule, set ports and then you've got a webserver, it's trivial to respond to requesta and provide a response in whatever format, so JSON, xml, binary, string.

We also provide TosclServerTask, this component allows the developer to send streamable data to the server and the server can send a response back. So it could be as simple as asking for the server time, or as complex as a sending an object back and forth (as long as the object can be saved to a stream or loaded into a TParam). We also provide a stream helper unit, using this it?s pretty trivial to save and load objects to and from a stream: for example

Code:
  TCustomer = class
    Id : int64;
    Name : String;
    DOB : TDate;
    GUID : TGUID;
    procedure SaveToStream(AStream:TStream);
    procedure LoadFromStream(AStream:TStream);
  End;
procedure TSomeClass.SaveToStream(AStream:TStream);
var
  sm : TOSclStreamHelper; //This is a record
begin
  sm.Create(AStream); //Link to the stream
  sm.WriteNumber(?ID?,ID);
  sm.WriteStr(?Name?Name.Trim); //These all have an overload to allow setting IsNull
  sm.WriteNumber(?DOB?,Double(DOB));
  sm.WriteStr(?GUID?,GuidTostr(GUID));
end;
procedure TSomeClass.LoadFromStream(AStream:TStream);
var
  sm: TOSclStreamHelper;
begin
  sm.Create(AStream);
  ID := sm.ReadNumber(?ID?,int64(0)); //Again, these all have an overload to read whether the stored data is null or not
  Name := sm.ReadStr(?Name?,??);
  DOB := TDate(sm.ReadNumber(?DOB?,double(0)); //We need to send the correct data type to ensure we use the correct overload of ReadNumber
  Guid := StrToGUID(sm.ReadStr(?GUID?,??))
end;
The current library is written and tested in Sydney with simple testing in Rio too.

Regards

Chris
  #4  
Old 11th December 2020, 05:41 AM
Shane Stump
 
Posts: n/a
Default Re: Get your Nexus/ADO data on iOS, Android, and OSX!

Howdy Chris,

Is it compatible with C++ Builder?

All the best,

Shane


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Using Nexus to create LOCAL mini-data copies of the network data Gary Mugford nexusdb.public.support 5 31st December 2017 04:02 PM
Can mobile devices like iPhone, iPad or Android show client screenvia nexus portal gateway? Chau Chee Yang nexusdb.public.support.portal 2 20th April 2012 11:56 PM
How to use DreamWeaver to Nexus table data ? Peter Sanders nexusdb.public.support 0 7th February 2010 09:47 PM
Installing Nexus db without overriding client's data Anton Feiertag nexusdb.public.support 2 22nd June 2004 11:01 AM
Nexus DB, KbmMW and RemObjects / Data Abstract Lauchlan M nexusdb.public.support 7 7th October 2003 05:33 AM


All times are GMT +11. The time now is 10:40 AM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.