0

Transactions

All triggers on data creation or change, and all scripts within do as transaction or do as server, run within a transaction that either executes fully or does not execute at all if it terminates. A transaction is writeable if at least one command within the script could potentially change data (e.g. change the value of a data field).

Ninox executes write transactions serially. This means that read accesses do not interfere with each other, but a write access can block subsequent write transactions.

Normally, this does not mean a restriction, even if hundreds of users are working in parallel. However, this behaviour becomes problematic if a write transaction takes a long time (more than a few milliseconds).

Avoid within transactions:

  • Querying external APIs
  • Complex queries over a lot of data

💡  User interactions - e.g. dialog(), openTable() - should never be used within a transaction. When executed server-side (for example on the web), they simply do not work.

Reply

null