0

Anzahl der Datensätze auslesen

Hallo, ich würde gerne bei einem neuen Datensatz das Zahlenfeld ID automatisch um eines erhöhen lassen

Ninox hat mir das Feld NR zusätzlich zu meinem als CSV importierten ID Feld generiert und beim hochzuholen der NR Feldes stimmt die Nummerierung nicht wenn dazwischen Datensätze gelöschte werden, NR wird einfach weiter nummeriert.

 

jetzt wollte ich bei der Tabllenskripoption „Bei neuem Datensatz ausführen“ die effektive Dadensatzzahl ermitteln und um 1 erhöhen lassen..

ich aus der Dokumentation die Funktion cnt gefunden aber ID := cnt(ID) +1 liefert nur 1, habe aber 338 aktuell eingepflegt.

heute etwas Blind muss ich sagen würde ich mich über Hilfe freuen..

Mit freundlichen Grüßen MK

4 Antworten

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Martin,

    versuch es bitte so:

    ID := cnt(select 'Deine Tabelle') +1

     

    Leo

    • Martin_K
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielen Dank, das funktioniert aber nur so

     

    ID := cnt(select 'Deine Tabelle') 

     

     +1 erhöht um 1 zu viel  und macht aus 338  340 warum auch immer

    übrigens Danke für deine Hilfe am Sonntag ist ja unglaublich..

    noch ne Frage, hast du eine Ahnung warum sich der NR Index aus Ninox beim löschen von Datensätzen trotzdem weiter erhöht?

    Viele liebe Grüße! MK

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Martin,

    diese Nr oder interne ID sollte ja eindeutig sein. Die Nummer wird nur einmal vergeben und beim Löschen wird nichts mehr reorganisiert. Die interne Verknüpfungen zwischen Tabellen benutzen diese IDs als eindeutige Adressen.

    Ich würde die Nummerieirug statt mit cnt lieber mit der Ermittlüng der größten Nummer machen.

    Also Trigger auf Tabellenebene bei neu:

    ----

    ID:=max(select 'Deine Tabelle'.ID)+1

    ---

    so wird gewährleistet, dass die ID auch beim Löschen eines Datensatzes aus der Mitte korrekt weitergeführt wird.

     

    Leo

    • Martin_K
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Aha alles klar.. vielen Dank für die Erklärung...

     zu cnt.. vermute mal das dies die Abkürzung für Counter ist.. 

    ich vermute mal das 

    cnt bei Initialisierung  Datensatz neu schon in der Summe eigentlich um den Wert 1 erhöht wurde, da dieser ja auch schon ein leerer Datensatz ist und zur gesamten Datensatzzahl gezählt wird 

     

    Das mit Max trifft in meinem speziellen Fall nicht zu weil die ID Nummer immer vergeben sein muss und nicht gelöscht werden kann resp. darf..

    aber och werde das Thema im Hinterkopf behalten 

    Danke nochmals vG MK

Content aside

  • vor 6 JahrenZuletzt aktiv
  • 4Antworten
  • 2175Ansichten