Parallele Connects und parallele zugriffe



  • Hi,

    mal angenommen ich habe eine DB. Die ist schon formatiert und hat schon vorgegebene Zeilen(Einträge). Jeder Zeile hat auch gleich vorne Links ein Feld, wo eine vortgehend numerierte Zahl reinkommt. Wenn jetzt für ein Client was in die nächste nicht benutzte Zeile was eingetragen werden soll, sucht er nach der nächsten noch-nicht benutzten Zeile und trägt es dort ein. Was aber nun wenn im gleichen Moment, das auch für einen anderen Client gemacht wird, dann bestände ja die gefahr, das der eine eingetragene Wert von der nächsten Abfrage einfach überschrieben wird. Wie ist da die Handhabung? Kann man eine Zeile vor dem editieren sich zu sichern und ein anderer parallel laufender Connect, diese für einen anderen connect zugesicherten status, abrufen und auswerten?



    1. Zeilen legt man dann an, wenn sie gebraucht werden. Dann kann auch nix überschrieben werden. Zeilen "auf vorrat" anzulegen halte ich für keine gute Idee.

    2. Für sowas verwendet man Transaktionen.



  • So parallel wird es auch nicht laufen, da solche Zugriffe immer sequenziell erfolgen. Das DBMS übernimmt dies, indem du einfach eine Anfrage stellst. Geschieht dies theoretisch parallel durch einen zweiten Client, dann wird das trotzdem in einer Art Queue eingetragen und abgearbeitet. Ist das erste Feld ein autoincrement, so sorgt übrigens das DBMS meist selbst dafür, dass es keine Mehrfachbelegungen geben kann. Dies ist aber vom verwendeten System und deinem Aufbau der Tabelle abhängig.
    Und wie Hustbear schon sagte, die Einträge werden nicht auf Vorrat angelegt.


Anmelden zum Antworten