|
Log in |
FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
![]() 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
|
|||
|
|||
![]() > 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
|
|||
|
|||
![]() 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; 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; Regards Chris |
#4
|
|||
|
|||
![]() Howdy Chris,
Is it compatible with C++ Builder? All the best, Shane |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
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 05:02 PM |
Can mobile devices like iPhone, iPad or Android show client screenvia nexus portal gateway? | Chau Chee Yang | nexusdb.public.support.portal | 2 | 21st April 2012 12:56 AM |
How to use DreamWeaver to Nexus table data ? | Peter Sanders | nexusdb.public.support | 0 | 7th February 2010 10:47 PM |
Installing Nexus db without overriding client's data | Anton Feiertag | nexusdb.public.support | 2 | 22nd June 2004 12:01 PM |
Nexus DB, KbmMW and RemObjects / Data Abstract | Lauchlan M | nexusdb.public.support | 7 | 7th October 2003 06:33 AM |