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
-
Hallo Martin,
versuch es bitte so:
ID := cnt(select 'Deine Tabelle') +1
Leo
-
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
-
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
-
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