Controls the level of locking and records access to ODBC-accessible tables.
Dirty read – transaction 1 changes a row. Transaction 2 reads the changed row before transaction 1 commits the change. If transaction 1 rolls back the change, transaction 2 reads a row that is considered to have never existed.
Nonrepeatable read – transaction 1 reads a row. Transaction 2 updates or deletes that row and commits the change. If transaction 1 attempts to reread the row, it receives different row values or discovers that the row has been deleted.
Phantom – transaction 1 reads a set of rows that satisfy some search criteria. Transaction 2 inserts a row that matches the search criteria. If transaction 1 reexecutes the statement to read the rows, it receives a different set of rows.
ur (uncommitted read) – dirty reads, nonrepeatable reads, and phantoms are possible.
cr (committed read) – dirty reads are not possible. Nonrepeatable reads and phantoms are possible.
rr (repeatable read) – dirty reads and nonrepeatable reads are not possible. Phantoms are possible.
sr (serializable) – transactions can be serialized. Dirty reads, nonrepeatable reads, and phantoms are not possible. This is usually implemented by using locking protocols that reduce concurrency.
vr (versioning) – transactions can be serialized, but this value provides higher concurrency. Dirty reads are not possible. This is usually implemented by using nonlocking protocols, such as record versioning.
no (none) – uses the ODBC driver default level.