Hmm, IsolationLevel.Serializable har nåt att göra med säkerheten, att inga andra surfare får tillgång till databasen förrän du är klar med din transaction, serializable är den säkraste att använda.
Jag hämtar och uppdaterar data mha en adapter och en SQLCommandBuilder.
För att låsa tabellen så använder jag ett transaktions-objekt med Isolationlevel Serializable.
Detta fungerar alldeles utmärkt, förutom att jag inte riktigt förstår varför.
Först använde jag ett transaktions-objekt utan att ange någon isolation-level. Resultatet blev att när jag test-körde i QA (under transaktionen) så kunde jag gör INSERT med inte SELECT.
När jag nu istället kör med Serializable så kan jag från QA göra SELECT med inte INSERT, vilket också är helt rätt.
Frågan är alltså varför?
Enligt VS-hjälpen står det för "Serializable":
A range lock is palced on the DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete.
Själv tolkar jag detta med att just ett "Range lock", dvs. den låser bara de rader jag jobbar med, vilket borde resultera i att andra användare får göra INSERT/UPDATE/DELETE på andra rader, men inte på de raderna jag jobbar med.
Eller är det fel-tolkat?
(Hur som helst så funkar ju allt som det ska nu...)