In Ninox, all actions are performed as transactions. In doing so, a sequence of database operations is summarized in a transaction.
We distinguish 2 types of transactions in Ninox:
Read
Write
Ninox executes transactions either in the client or on server.
A client is the program that is executed on an end device of a network, communicating with a server. Depending on what needs to be done, Ninox executes an instruction directly at the client or at the server.
do as database ... end
is available for Private Cloud/On-Premises.
Ninox executes transactions either in the client or on server.
On one hand, which transaction is executed on server or in the client depends on its type (read or write). On the other hand, it also depends on whether the transaction was triggered in the web app or the native app.
A client is the program that is executed on an end device of a network, communicating with a server. Depending on what needs to be done, Ninox executes an instruction directly at the client or at the server.
Description | Transaction type | Web app | Native app |
---|---|---|---|
When you change data within an action, this is referred to as a write transaction.
The input or modification of data
Single statements of a script that change data, e.g., via a button
All statements within a do as transaction
or do as server
block, if at least one statement can potentially change data
Trigger on create and trigger after update are executed within the write transaction through whose instructions they were triggered.
Only one write transaction can be executed at a time. All other write transactions have to wait for their turn.
However, this does not pose a concern, since write transactions are usually executed within a few milliseconds, so that multiple users can access Ninox at the same time without any restrictions.
It may happen that Ninox appears to be slow or unresponsive. This may be due to a transaction that takes a bit more time to execute your instructions and therefore blocks subsequent transactions in the queue.
Queries of external services, e.g., API calls via http()
Extensive data evaluations in combination with select
statements
To find specific records in a table using a filter, Ninox searches the table for records that match the filter. During this process Ninox only "reads" the table in order to display the records that correspond to the filter.
Ninox always searches the table that was up-to-date at the moment of the query. Changes to data—for example by co-workers—that were added during the current query are not included.
Ninox can process many read transactions simultaneously without delaying or blocking other transactions.
Ninox can process many read transactions simultaneously without delaying or blocking other transactions.
Data management
Write
Server
Client
Write
Server
Client
Write
Server
Client
Read
Server
Client
Scripting
Read
Client
Client
Write
Server
Client
Read
Server
Client
Read/Write
Server
Client
Read/Write
Server
Server
Read/Write
Server
Server
Read/Write
Client
Client
Read/Write
Client
Client
Write
Server
Client
Write
Server
Client
Create
Change
Delete
Load views
General (no data change)
General (at least one data change)
select
do as transaction
do as server
do as deferred
do as database
Trigger after open
Trigger on new record
Trigger after update