Stefan Falz: eindeutige ID

Beitrag lesen

Hi !

Danke für die schnelle Antwort !

Ich denke so geht es bestimmt, aber ich hätte da
noch eine Frage...

Was ist wenn 2 Leute zeitgleich das Formular öffnen,im
Bezug auf die Vergabe der IDs ????

cu

Marcus

Hallo Marcus,

da wäre die erste Lösung wohl doch besser. Leg einen neuen Satz an und frag die ID ab. Dann ist diese schon belegt und der nächste User bekommt eine höhere ID.
Gleichzeitige (Schreib)Zugriffe innerhalb der DB werden mit kurzzeitigen Locks der Sätze verhindert, so daß dieselbe ID nicht mehrfach vergeben wird.

Da Problem wird dann nur sein, daß Du keine eindeutigen ID's bekommst, die für jede Buchung immer wieder mit 1 beginnen.
Hier würde sich mein zweites Beispiel anbieten, mit dem Unterschied, daß Du den Satz direkt anlegst. Da die 3 Felder als PK hinterlegt sind, kann kein anderer User dieselbe ID bekommen.

<%
' --- Ermitteln der max. ID
SQL = "SELECT max(Feldname) As MaxID From tblTabelle"
Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.Open SQL, objConn
         New_ID = objRS.Fields("MaxID")
    objRS.Close

' --- Abfrage mit neuer ID (0 Datensätze)
SQL = "SELECT * FROM tblTabelle WHERE ID = New_ID"
    objRS.Open SQL, objConn
    objRS.AddNew
        objRS.Fields("Datum") = New_Date
        objRS.Fields("Char") = New_Char
        objRS.Fields("Feldname") = New_ID
        objRS.Update
' --- Wiederholem der Abfrage mit neuer ID (1 Datensatz)
    objRS.Requery
    ' --- Zuweisung an die Felder
    ...

objRS.Close
Set objRS = Nothing
%>

Tschau, Stefan