Environment als SELECT Kriterium

  • Hi ...


    wenn ich eine Zahl als Environment Variable Speicher und dann via OpenView eine View öffne, die auf diese Environment Variable zugreift und ein entsprechendes SELECT Statement hat


    SELECT (Form = "frm_Run") & (TestID = @Environment("ShowTest"))


    dann geht die View einmal mit der gesetzten Zahl auf und dann immer wieder mit dieser. Er selectet dann immer wieder gleich, obwohl sich die Environment Variable ändert!


    ViewRefresh bringt nix!
    EnviVariable hab ich im PostOpen der View ausgeben lassen ... hier isse immer anders ... nur im Select Statemant anscheinend nich ...


    Was kann ich tun, damit der SELECT variable wird ?


    Danke mal

  • Quatsch, das hängt von der Datenbank größe ab, und das würde in diesen fall einfach bedeuten das der USER den ansicht aufbaut, und NICHT den server. Damit würde der Admin sich sicherlich eher bedanken, weil es den Server ENTLASTET, und nicht belastet.


    Ronka

  • Quatsch? Das glaub ich nicht Tim.


    1) Nicht der User baut den View auf (das wäre doch etwas umständlich), sondern der Server bzw. Notes Client


    2) Wenn die Datenbank auf dem Server liegt, wird die View AUF DEM Server aufgebaut -> der Server wird belastet. Nicht umsonst steht in der Designer-Hilfe zu "After each use": "This option saves the most disk space, but the index must be rebuilt the next time the view is opened. Choose this option for views that are used infrequently"


    Und der erneute Aufbau eines Views kann schon mal dauern und CPU fressen.

  • Ich glaube wirklich das du mal eine Admin schulung haben solltest.


    Denk bitte mal nach. Was passiert wenn der USER ein ansich öffnet der keine index hat ?
    Dann ist der USER der jenige der diesen ansicht aufbaut. Und, JA das ist für dich vielleicht umständlich, aber das ist GENAU das was passiert. Damit ist der VIEW punkt genau aktuell, und damit punkt genau richtig für diesen zweck. Wenn ein andere user WÄHREND des geöffnet sein diesen gleichen ansicht anwählt, dann wird der server den generierte index von der platte lesen, und präsentieren.
    Sobald der letzten nutzer den ansicht verlassen hat wird es wieder von der platte gelöscht. Sprich kein index mehr vorhanden.


    Der plattenplatz nutzung ist server technisch da, alles andere ist Benutzer initiert. und damit server ENTLASTEND.


    Der indexer beschäftigt sich NUR mit bleibenden Ansichten, nicht mit den die weggeworfen werden.


    Ronka

  • Nene, die Schulungen hab ich schon gehabt. Das Problem ist, dass ich mein Hirn auch mal einschalten bzw. nicht immer drei Sachen gleichzeitig machen sollte. ;)


    Du hast natürlich Recht, der View wird lokal erstellt. :wuet:


    Aber irgendwie hab ich dabei trotzdem ein ungutes Gefühl.

  • Irgendwie scheint jetzt aber hier aneinander vorbei geschrieben zu werden:
    Unter den genannten Umständen triggert der User den Index-Aufbau. Der wird aber auf dem Server aufgebaut, nicht irgendwie "lokal".
    Greift ein weiterer User auf die Ansicht zu und diese kann nicht mehr beim Client gecached präsentiert werden, dann kann es zu sehr eigentümlichen Inhalten kommen.
    Gleiches passiert ja, wenn man den Server über Zeitberechnungen innert einer Ansicht zum Ansichtsaufbau zwingt. Das geht hundertmal gut, aber beim 101. Mal kracht es dann.
    Das Verfahren mit der zeitabhängigen Funktion innerhalb einer Ansichtsspalte oder der view selection formula geht sogar noch über das index discarding hinaus (siehe hierzu Ronka's Post).


    Fazit: Dynamische Ansichten sind so nicht (sicher) zu machen, solange die DB auf dem Server geöffnet wird. "Snork" wird sich wohl nicht sooo lange an derartigen "dynamischen Ansichten" erfreuen. Irgendwann schepperts!


    Bernhard

  • Zitat

    Unter den genannten Umständen triggert der User den Index-Aufbau. Der wird aber auf dem Server aufgebaut, nicht irgendwie "lokal".


    Ja, das auslesen der Dokumente, und das schreiben der ansicht index macht allerdings der CLIENT, und nicht der server. Der Client macht das auf den server, und speichert den ansicht auch auf den server, damit weitere user die nach den aufgebauten (aber noch nicht geschlossene) ansicht darauf zugreifen dieses auch vom server präsentiert bekommen.


    Das es sich hier um einen (user!) zeiträubenden aktion handelt, und das es auch mal schief gehen kann sollte auch klar sein.
    Beispiel: 2 user öffnen praktisch zeitgleich den ansicht, beiden bauen den auf, und der erste bekommt den ansicht, und kurz danach ist der schon "weg", und wird der user mit den blauen 'ich bin nicht mehr aktuell' zeichen angedeutet das er aktualisieren kann. Wenn der ANDERE user den ansicht dann schon wieder verlassen hat, hat der server dessen ansicht schon wieder geräumt, und würde das (unter umständen) ein komplett neu generieren der ansicht bedeuten.


    Naja so ist das leben.


    Ronka