0

Eigenschaften aus verknüpfter Tabelle übernehmen

Aus der übergeordneten Tabelle "Hauptprodukt" kann ich die Genre-Bezeichnungen von einem Album (Hauptprodukt) auf die korrespondierenden "Songs" mittels Trigger übernehmen:

'Genre (dynamisch)' := Hauptprodukt.'Genre (dynamisch)';
'Subgenre (dynamisch)' := Hauptprodukt.'Subgenre (dynamisch)'

Das Problem ist, dass ich den Befehl bei jedem Song einzeln ausführen muss. Wie kann ich den Befehl global in der ganzen Tabelle ausführen?

Danke!

3 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Reinhard, versuch's mal so (Button oder Console; aber vorher Backup machen!):

    for i in select SONGS do
       i.'Genre (dynamisch)' := i.Hauptprodukt.'Genre (dynamisch)';
       i.'Subgenre (dynamisch)' := i.Hauptprodukt.'Subgenre (dynamisch)'
    end
    

    Wenn es viele Datensätze sind, dann am besten noch ein "do as server" davor und ein weiteres "end" dahinter setzen.

    • Reinhard
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hi Planox, das hat super funktioniert. Bin bei den i's immer etwas verwirrt, wo sie überall hinmüssen. Scheinbar vor jeden betroffenen Datensatz. 

    Die "Do As Server" Funktion ist mir komplett neu. Was bewirkt diese genau? Gibt es hierzu eine Doku?

    Danke für die schnelle Hilfe!
     

      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Reinhard 

      Mit "for i in select Songs" geht Ninox die Tabelle Datensatz für Datensatz durch, speichert dessen jeweilige ID in der Variable 'i' und führt die Funktionen in der Schleife so oft aus, wie Datensätze vorhanden sind. Das 'i' steht also in jedem Durchlauf für die ID des jeweiligen Datensatzes.

      "do as server" veranlasst Ninox, den folgenden Code direkt auf dem Server statt auf dem Client auszuführen, was die Performance bei umfangreichen Datenmanipulationen deutlich erhöhen kann. Man sollte es aber wirklich nur einsetzen, wenn in einem Schritt viele Datensätze verarbeitet werden. Eine kurze Beschreibung findet sich in der offiziellen Ninox-Doku:

      https://docs.ninox.com/de/skripten/einfuehrung-in-ninox-skript/performance-der-skripte-optimieren#do-as-server-...-end