Wenn Sie über einen Filter bestimmte Datensätze in einer Tabelle finden möchten, durchsucht Ninox dafür die Tabelle nach Datensätzen, die dem Filter entsprechen.
Bei diesem Vorgang „liest“ Ninox die Tabelle lediglich, um anschließend die dem Filter entsprechenden Datensätze anzuzeigen.
Es wird dabei immer genau die Tabelle durchsucht, die im Moment der Abfrage aktuell war. Änderungen an Daten (zum Beispiel durch Kollegen), die während der laufenden Abfrage hinzugefügt wurden, werden nicht einbezogen.
Ninox kann viele lesende Transaktionen gleichzeitig bearbeiten, ohne dass dadurch andere Transaktionen aufgehalten bzw. blockiert werden.
Innerhalb von Ninox werden alle Aktionen als Transaktionen durchgeführt
Innerhalb von Ninox werden alle Aktionen als Transaktionen durchgeführt. Dabei werden in einer Transaktion eine Folge von Datenbank-Operationen zusammengefasst.
Wir unterscheiden bei Ninox 2 Arten von Transaktionen:
lesend
schreibend
Ninox führt Transaktionen entweder im Client oder auf dem Server aus.
Als Client wird das Programm bezeichnet, das auf einem Endgerät eines Netzwerks ausgeführt wird und dabei mit einem Server kommuniziert; je nachdem, was gemacht werden soll, wird Ninox eine Anweisung direkt im Client oder auf dem Server ausführen.
Wenn Sie innerhalb einer Aktion auch gleich Daten ändern möchten, sprechen wir von einer schreibenden Transaktion.
die Eingabe oder Änderung von Daten
einzelne Anweisungen eines Skriptes, die Daten ändern, z.B. über einen Button
alle Anweisungen innerhalb eines do as transaction
- oder do as server
- Blocks, wenn mind. 1 Anweisung potentiell Daten ändern könnte
Trigger bei neuem Datensatz und Trigger nach Änderung werden innerhalb der schreibenden Transaktion ausgeführt, durch deren Anweisungen sie ausgelöst wurden.
Es kann immer nur eine schreibende Transaktion gleichzeitig ausgeführt werden. Alle anderen schreibenden Transaktionen müssen warten, bis sie an der Reihe sind.
Das ist aber kein Problem, da schreibende Transaktionen normalerweise innerhalb von wenigen Millisekunden ausgeführt werden, so dass mehrere Anwender gleichzeitig auf Ninox zugreifen können, ohne dass es zu irgendwelchen Einschränkungen kommt.
Es kann vorkommen, dass Ninox langsam oder nicht zu reagieren scheint; das kann an einer Transaktion liegen, die für die Ausführung Ihrer Anweisungen etwas mehr Zeit benötigt und daher nachfolgende Transaktionen in der Warteschlange blockiert.
Abfragen externer Dienste, z.B. API-Calls per http()
umfangreiche Datenauswertungen in Verbindung mit select
-Anweisungen
do as database ... end
ist für Private Cloud/On-Premises verfügbar.
Ninox führt Transaktionen entweder im Client oder auf dem Server aus.
Welche Transaktion auf dem Server oder im Client ausgeführt wird, hängt einerseits von ihrer Art (lesend oder schreibend), andererseits auch davon ab, ob sie in der Web-App oder der nativen App ausgelöst wurde.
Als Client wird das Programm bezeichnet, das auf einem Endgerät eines Netzwerks ausgeführt wird und dabei mit einem Server kommuniziert; je nachdem, was gemacht werden soll, wird Ninox eine Anweisung direkt im Client oder auf dem Server ausführen.
Beschreibung | Art der Transaktion | Web-App | Native App |
---|---|---|---|
Datenverwaltung
schreibend
Server
Client
schreibend
Server
Client
schreibend
Server
Client
lesend
Server
Client
In Skripten
lesend
Client
Client
schreibend
Server
Client
lesend
Server
Client
lesend/schreibend
Server
Client
lesend/schreibend
Server
Server
lesend/schreibend
Server
Server
lesend/schreibend
Client
Client
lesend/schreibend
Client
Client
schreibend
Server
Client
schreibend
Server
Client
erstellen
ändern
löschen
Ansichten laden
allgemein (ohne Datenänderung)
allgemein (mind. 1 Datenänderung)
select
do as transaction
do as server
do as deferred
do as database
Trigger nach Öffnen
Trigger bei neuem Datensatz
Trigger nach Änderung