do as server ... end
Ninox Profile
Hallo zusammen,
hier möchte ich das Thema Server-Client erläutern.
in den Cloud und Server Versionen können Berechnungen sowohl am Server als auch am Client ausgeführt werden. In der Regel ist es so, dass die Befehle an den Schaltflächen als Client ausgeführt werden und die Trigger direkt am Server laufen. Die Client-Berechnungen laufen viel langsamer als die vom Server. Ich hatte Mal eine Anwendung, welche mit dem Knopfdruck eine ziemlich komplizierte Berechnung in mehreren Untertabellen durchführen musste. die Berechnung dauerte 1 Minute. Damals hatte ich die Formel in einen Trigger "nach Änderungen" bei einem "Ja/Nein" Feld gepackt und bei der Schaltfläche die Formel geschrieben:
---
if 'Ja/Nein'=true then 'Ja/Nein':=false else 'Ja/Nein':=true
---
Das Ergebnis war - 2 Sekunden statt 1 Minute.
Mit dem "do as server … end" braucht man die Umstellung auf Trigger nicht mehr.
Ninox Profile
Hey Leo, funktioniert das auch mit der Ninox Server Version. Bist du heute auch aus dem Webinar geflogen wo es mit Birger weiter gehen sollte?

LG Basti
Ninox Profile
Hallo Basti,
Die neue Server Version ist noch nicht da, und die alte unterstützt die neuen Befehle noch nicht.
Ja ich bin da auch rausgeflogen. Bin dann zu den englischen Treffen gegangen und dort zu Ende gehört.
Ninox Profile
Ich hab den Befehl mal auf einem Button getestet in der Cloud, funktioniert aber leider nicht. Geht das nur bei einem Trigger?
Ninox Profile
Hier ist die Datenbank

https://www.dropbox.com/s/4iam9j4052vhtsh/SERVER%20VS%20CLIENT-2.ninox?dl=0

dort werden in der Untertabelle 100 Datensätze hinzugefügt.
Funktioniert in Mac und Cloud.
In Cloud sieht man deutlich, wo die Unterschiede liegen (15 Sekunden gegen 145 Millisekunden)

Ninox Profile
Also in deinem Beispiel funktioniert der do as server Befehl nicht immer mal funktioniert er mal nicht. Hab jetzt den Button mehrmals versucht zu drücken, bzw einen neuen Datensatz angelegt und die Messung wiederholt mal führt er ihn aus mal nicht, zumindest in der Ninox Client app.
Ninox Profile
Da muss ich dir widersprechen. Bei App ist die Geschwindigkeit von der Synchronisation mit Server abhängig. die Formel funktionier immer, aber die 100 Datensätze müssen erst vom Server auf deine App geladen werden. achte einfach auf Wolkensymbol oben links. Manchmal ist dort ein Pfeil, manchmal ein Ausrufezeichen, und es dauert ein paar Sekunden, bis die Werte sich aktualisieren.
Ninox Profile
Hab es gerade nochmal getestet. Also manchmal erscheint bei der Wolke ein Ausrufszeichen welches wieder verschwindet und manchmal macht er den Befehl und es tut sich garnichts noch nicht mal auf der Wolke erscheint was. Ich kann den Befehl erst nochmal ausführen wenn ich die Datenbank schließe. Hab es auch mal mit einem Hotspot von meinem Smartphone versucht, selbes Problem. Auch von einem anderen Rechner selbes Problem. Werde es kommende Woche mal in einem anderen WLAN testen.
Ninox Profile

Ich habe da auch noch eine Frage dazu...

ist es möglich in einem projekt den status zu automatisieren ob die DB als client oder als web based cloud Variante ausgeführt wird.

in der Art

if web based cloud then do as server

Viele liebe Grüße! 

 

Ninox Profile

hallo Martin, es gibt ein operator  ninoxApp() => "mac" | "ipad" | "iphone" | "web",

vermutlich gibt es auch für Android ein Rückgabewert, den kenne ich leider nicht. Also deine Formel wäre dann:

 

if ninoxApp() = "web" then do as server

 

Leo

1 2
Antworten