Index_ID automatisch erstellen

MasterTango

Grünschnabel
Hi leute,

Ich suche eine Idee für folgendes Problem.
Ich benutze die Programmierumgebung 4th Dimension die warscheinlich nur wenige kennen. Es ist ein Datenbankentwicklungstool mit eingebauter Softwareentwicklungsumgebung.

Ich möchte dort Tabellen erstellen in denen die ID_s automatisch vergeben und eingetragen werden.

also
1 namex
2 namey
3 namez

1,2,3 sollen automatisch vergeben werden. Wie kann man das realisieren, da 4D sowas nicht zur verfügung stellt.
Hat einer eine Idee. Auch für Leute die das nicht kennen. Wenn ihr eine Methode kennt um sowas zu machen, bitte schreiben.

Meine Idee wäre bisher, eine zusätzliche Tabelle zu erstellen mit der ID, der Tabelle wo sie hinkommt und Datum um evtl. zu verhindern das Nummern die Gerade erst gelöscht wurden, gleich wiederverwendet werden.

In der Tabelle stehen für jede Tabelle 100 ID automatisch generrierte ID´s
Wenn ein neuer Datensatz in einer Tabelle angelegt wird, wird eine ID´d aus der ID - Tabelle genommen. Und die ID wird in dieser Tabelle gelöscht.

Was haltet Ihr von der Idee ...habt ihr eine bessere oder ist das schon der Stein der Weisen?


MFG

Der MasterTango
 
Hi!

Ich kenn weder die Entwicklungsumgebung, noch weiss ich welche Datenbank Du nutzt?!
Aber jede Datenbank, die ich kenne kann das ID-Feld autom. hochzählen. (autoincrement)

Gibt es dafür keine Einstellmöglichkeiten?
 
Habe nun mal was umgesetzt

falls es einen Interessiert. Ich habe die Idee nun mal umgesetzt

$maxAnzahl:=100
$menge:=Count tables
For (i;1;$menge)
ALL RECORDS([Ba_ID_Funktion])
QUERY([Ba_ID_Funktion];[Ba_ID_Funktion]ID_Tabelle=Table name(i);*)
QUERY([Ba_ID_Funktion];_&_;[Ba_ID_Funktion]ID_Datum<Current date)
$z:=Records in selection([Ba_ID_Funktion])
If (Records in selection([Ba_ID_Funktion])<$maxAnzahl)
ORDER BY([Ba_ID_Funktion]ID_NR;>)
LAST RECORD([Ba_ID_Funktion])
$zaehler:=[Ba_ID_Funktion]ID_NR+1
For ($z;$z;$maxAnzahl-1)
CREATE RECORD([Ba_ID_Funktion])
[Ba_ID_Funktion]ID_NR:=$Zaehler
[Ba_ID_Funktion]ID_Tabelle:=Table name(i)
$zaehler:=$zaehler+1
SAVE RECORD([Ba_ID_Funktion])
End for
End if
End for



Vielleicht hat ja noch einer eine bessere Idee
 
Kann mir zwar kaum vorstellen, das es bei 4th Dimension kein auto_increment gibt aber:
Wie wärs mit nem Trigger ?
Mit dem Trigger Änderungen der Datenmenge abfangen.
Dann ein SELECT ID FROM tabelle ORDER BY ID DESC;
 
Zurück