Doppelte Datensätze vermeiden

  • hallo zusammen,


    ich möchte vermeiden, dass in einer user datenbank gleichnamige datensätze (z.b: nachname) vermieden wird.
    gibt es hierzu eine "kleine" möglichkeit oder muss das "aufwendig" programmiert werden ?


    cu

    • Offizieller Beitrag

    man könnte beim Speichern abfragen, ob es so ein Dokument schon gibt.


    siehe dazu in der Designerhilfe
    NotesView.GetDocumentByKey oder
    @DBLookup


    Aber immer daran denken Notes ist ein verteiltes System.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • hmm habe ich dich da richtig verstanden..


    ich mach jetzt ein @dblookup auf die gleiche datenbank gehe mit dem namen als schlüssel in die ansicht und und das dadurch entstandene ergebnis (error) ist dann die sperre für den doppelten satz ?


    mit get NotesView.GetDocumentByKey kann ich irgendwie nichts anfangen :-?

  • Nein, damit überprüfst du nur ob es schon ein Dokument mit gleichem Schlüssel gibt.
    Abhängig davon ob du ein Ergebnis bekommst musst du dann das Dokument speichern oder den Benutzer darauf hinweisen dass es schon ein Dokument mit dem Wert gibt

    • Offizieller Beitrag

    es muss noch geprüft werden, ob es sich bei dem gefunden Dokument um das im UI offene Dokument handelt, denn dann darf gespeichert werden.


    Gruß
    Dirk

  • könnt ihr mir da mal ein beispiel geben ?


    ich hänge gerade dabei..


    DDSatz := @DbLookup("Notes" : "NoCache"; "Server" : "Datenbank" ; "Ansicht"; Schlüssel ; "Spalte");
    @If(DDSatz = ""; Weiter ; Nein);

    • Offizieller Beitrag

    DDSatz := @DbLookup("Notes" : "NoCache"; ""; "Ansicht - sortiert nach Schlüsselwort"; NameSchlüsselFeldl ; RückgabeSpaltennummer; [RETURNDOCUMENTUNIQUEID]);


    mit @Elements( Liste ) prüfen wieviele Datensätze gefunden wurden.


    Bei nur einem Datensats prüfen, ob die DocumentUniqueID, die vom DBLookup zuzrückkam identisch mit der vom geöffneten Dokument ist.


    Identisch => speichern
    @Elements = 0 => speichern


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • juhu es hat geklappt :strike:


    vielen dank an euch ..


    andere frage ich hab gerade gesehen, viele kommen aus "meiner region"
    gibt es hier irgendwie so eine art "common deutschland
    (im bereich notes) eine art "stammtisch" :idea:

  • ich wär ja gerne dabei aber "einführen" ???
    da fehlt mir glaub ich ein bischen das knowhow (was man auch schon mitbekommen hat)


    aber die idee mit der umfrage ist klasse, dann sieht man mal wie die reaktion wäre..