[fpc-pascal] JSON Dataset in FCL-DB.

Michael Van Canneyt michael at freepascal.org
Fri Dec 16 18:53:02 CET 2011



On Fri, 16 Dec 2011, Leonardo M. Ramé wrote:

> From: Michael Van Canneyt <michael at freepascal.org>
>> To: FPC mailing list <fpc-pascal at lists.freepascal.org>; Lazarus mailing list <lazarus at lazarus.freepascal.org> 
>> Sent: Friday, December 16, 2011 1:37 PM
>> Subject: [fpc-pascal] JSON Dataset in FCL-DB.
>> 
>>
>> Hello,
>>
>> I just committed a JSON dataset in fcl-db.
>>
>> This is a dataset which stores its data in JSON objects (as in fpjson) in memory. The records are in a JSON array, each record can be a JSON object or array.
>> (not mixed)
>>
>> The dataset is read-write. It can be used to create JSON data from scratch: just add definitions to the fielddefs properties, and call 'Open'. At the end, call SaveToStream().
>>
>> There are 2 descendents which read/write ExtJS JSON data packages (Objects or Arrays) from streams but they are usable to handle any kind of JSON data. Currently, the dataset does not yet support propagating changes (deltas) back to a server.
>>
>> I would be glad to recieve feedback, comments.
>>
>> Michael.
>
>
>
> Does this allow executing selects against an sql database and traverse the results using this JSON dataset?

Yes. I use it as follows:

Normally, Fcl-web server using the sql-db and fpwebdata sends JSON-Formatted data to a browser.

I have now a lazarus-written client app which sends a HTTP request to the same webserver, 
reads the returned JSON, and then opens a dataset with the JSON as source of the data.

Combined with the Ext.Direct RPC, I intend to use this for N-tier apps where the client 
can be a native app or a browser.

What is missing currently is the delta to update data on the server, but that should be easily added.

Michael.


More information about the fpc-pascal mailing list