DelayedInsert

26. September 2007 10:59

Auf der Subform der Verkaufszeile habe ich die Option "DelayedInsert" auf "No" gesetzt. NAV hat diese auf "Yes" gesetzt gehabt (Standardwert ist "No"). Ist das nicht weiter problematisch oder ist das keine gute Idee?
Weiss jemand, wieso dieser Wert auf "Yes" gesetzt wurde?

Dies, damit ich die Zeilennr. (Bestandteil des Primary Keys) sofort im Zugriff habe, da ich im OnValidate-Trigger des Feldes "No." eine Funktion habe, die eine neue Verkaufszeile schreibt.

Danke!
LL

26. September 2007 11:30

Ja, das kann (je nach Konstealltion) problematisch werden.

DelayedInsert = Ja bedeutet, dass der Datensatz, den du gerade erst gepflegt hast, erst dann in der Datenbank gespeichert (und der OnInsert-Trigger erst dann durchlaufen) wird, wenn du den Datensatz als ganzes verlässt.

Allgemein:
Dies ist in vielen Forms sinnvoll, wo der Benutzer in Ruhe die Daten pflegen soll, ohne durch irreführende Fehlermeldungen, dass dieses oder jene Feld zum Beispiel noch leer sei, aufgehalten zu werden.

Verkaufszeile speziell:
Sämtliche Schlüsselfelder der Verkaufszeile sind auf der Form nicht sichtbar. Ist nun DelayedInsert = FALSE, wird ein Datensatz in der Tabelle gespeichert, sobald du auf einen leeren Datensatz in der Subform klickst - und das möchtest du doch nicht oder?
Auf diese Weise erzeugst du dir nämlich ganz schön viele Datensätze ohnen Inhalt.