OputresMedlem sedan feb. 2004333 inlägg Om man använder Ado:s variant Add.New finns ju möjligheten att låsa databasen med AdLockOptimistic/Pessimistic medan man skriver till den. Men om man istället väljer att lägga in poster genom att executa en Sql-sats direkt, hur fungerar det då med låsningen?
Säg att en person vill uppdatera en post när en annan håller på (visst, millisekunder men ändå), vad händer då? Får denne snällt vänta till person nummer 1 är klar?
GuffaMedlem sedan juni 2004533 inlägg Det som kallas låsning i ADO är egentligen ingen låsning av datat, utan snarare hur recordsetet ska hantera att datat förändras. Att öppna en tabell förhindrar inte att den ändras av någon annan. För att göra en riktig låsning av datat så måste man använda transaktioner.
När du kör en sql-fråga så har den automatiskt en transaktion. Det innebär att datat faktiskt är låst medan uppdateringen sker, så ifall två försöker uppdatera samma post samtidigt så får den ena vänta tills den andra är klar.