Bij mijn projecten maak ik steeds gebruik van Delphi en Interbase en de volgende knoppenbalk waarmee de gebruiker nieuwe records kan toevoegen, verwijderen, wijzigen, enz...

Nu doe ik het steeds zo dat een gebruiker eerst op het edit knopje moet drukken, waarna hij pas het record echt kan wijzigen. Hierbij wordt een dummy update uitgevoerd, waardoor het record gelockt wordt voor andere personen. Vanaf nu kan alleen deze persoon dit record wijzigen.
Om nu te voorkomen dat dit record gelockt blijft en niemand anders het record meer kan wijzigen, zit er een controle in die na x minuten het record automatisch unlockt (dus rollbacken).
Een andere mogelijkheid zou zijn om de gebruiker altijd de mogelijkheid te geven om te editten (er wordt geen dummy update uitgevoerd). Bij het starten wordt dan de tijd opgeslagen (de tijd wordt uit de tabel gehaald, is een apart veld). Vervolgens als de gebruiker zijn wijzigingen wil opslaan wordt gekeken of de opgeslagen tijd hetzelfde is als de tijd die nu in de tabel staat. Zo ja dan heeft dus niemand anders in de tussentijd iets gewijzigd en mag deze persoon de wijzigingen opslaan en anders geef je een melding aan de gebruiker dat iemand anders het record heeft gewijzigd en dat zijn wijzigingen niet kunnen worden opgeslagen.
Ik zelf vind de 1e methode het mooist, omdat je dan niet voor niks een tijd gegevens kan editten, omdat je 100% zeker weet dat wanneer je aan het wijzigen bent, jouw gegevens ook daadwerkelijk opgeslagen gaan worden. Bij de 2e methode moet je dat nog maar afwachten en misschien kan je dus voor niks een heleboel gegevens gewijzigd hebben.
Ik zou graag willen weten hoe jullie dit doen en waarom je die methode het beste vind.

Nu doe ik het steeds zo dat een gebruiker eerst op het edit knopje moet drukken, waarna hij pas het record echt kan wijzigen. Hierbij wordt een dummy update uitgevoerd, waardoor het record gelockt wordt voor andere personen. Vanaf nu kan alleen deze persoon dit record wijzigen.
Om nu te voorkomen dat dit record gelockt blijft en niemand anders het record meer kan wijzigen, zit er een controle in die na x minuten het record automatisch unlockt (dus rollbacken).
Een andere mogelijkheid zou zijn om de gebruiker altijd de mogelijkheid te geven om te editten (er wordt geen dummy update uitgevoerd). Bij het starten wordt dan de tijd opgeslagen (de tijd wordt uit de tabel gehaald, is een apart veld). Vervolgens als de gebruiker zijn wijzigingen wil opslaan wordt gekeken of de opgeslagen tijd hetzelfde is als de tijd die nu in de tabel staat. Zo ja dan heeft dus niemand anders in de tussentijd iets gewijzigd en mag deze persoon de wijzigingen opslaan en anders geef je een melding aan de gebruiker dat iemand anders het record heeft gewijzigd en dat zijn wijzigingen niet kunnen worden opgeslagen.
Ik zelf vind de 1e methode het mooist, omdat je dan niet voor niks een tijd gegevens kan editten, omdat je 100% zeker weet dat wanneer je aan het wijzigen bent, jouw gegevens ook daadwerkelijk opgeslagen gaan worden. Bij de 2e methode moet je dat nog maar afwachten en misschien kan je dus voor niks een heleboel gegevens gewijzigd hebben.
Ik zou graag willen weten hoe jullie dit doen en waarom je die methode het beste vind.