Page History
...
When a user types a value into a text field (which is bound to a specific column of the database table) and clicks out, the Servoy Application Server issues a SQL update command to the database to modify the selected record. The resulting change is also broadcast\ to all connected clients.
...
The fundamental unit of data binding in both the GUI and the API is the Servoy Foundset\ object.
Client Cache
...
A record may fall out of the cache gracefully to conserve memory and is automatically reloaded the next time it is accessed. This happens at the discretion of the client's caching engine, which is highly optimized. Relieved of the burden of managing memory, the developer can focus on more important things.
Data Broadcasting
What happens to the cache when the contents of a record are changed independent of the an individual client session?
Fortunately, the Servoy Application Server keeps track of all the clients and issues a Data Broadcast event to all clients whenever a record is inserted, updated or deleted by another Servoy Client. Where appropriate, each clients' cache is automatically updated and the user experiences a liveThis notification allows each client to automatically update its cache providing the end users a shared, real-time view of the data.
In a simple example, two remote users are looking at the same customer record. The first user modifies the customer's name and commits the change. The second user immediately see's the change updated in his/her client session.
This functionality is provided by default for all Servoy client types. There is nothing that a developer needs to do to enable it. However, the developer may augment the default functionality by capturing the data broadcast event and invoking specific business logic. Also, Servoy's API provides a means to programmatically update client caches in cases where a record is modified outside of a any Servoy Client session, i.e. from another application.
Panel | ||
---|---|---|
| ||
I remember I was thinking that there were some gray areas when it comes to datasets and foundsets, and generally how Servoy is generating the SQL from these depending on relations etc. I noticed that there were often questions about that in the forum, and no definitive answers of course (but at least pointers to what approach gives you what), and in my company too, people are coming to me quite often with some of the following questions:
Seems like a lot of topics in one, really, but of course not necessarily all of these topics need to be addressed, or addressed at the same time, but I really think that these are things that need more explanations/clarifications/demonstrations. |
...