Cursori scorrevoli e isolamento delle transazioni

Nella tabella seguente sono elencati i fattori che regolano la visibilità delle modifiche.

Modifiche apportate da: La visibilità dipende da:
Cursore Tipo di cursore, implementazione del cursore
Altre istruzioni nella stessa transazione Tipo di cursore
Istruzioni in altre transazioni Tipo di cursore, livello di isolamento della transazione

Questi fattori sono mostrati nella figura seguente.

Factors governing the visibility of changes

La tabella seguente riepiloga la capacità di ciascun tipo di cursore di rilevare le modifiche apportate dallo stesso, da altre operazioni nella propria transazione e da altre transazioni. La visibilità di queste ultime modifiche dipende dal tipo di cursore e dal livello di isolamento della transazione contenente il cursore.

Tipo di cursore\azione Self Pro

Txn
Othr

Txn

(RU[a])
Othr

Txn

(RC[a])
Othr

Txn

(RR[a])
Othr

Txn

(S[a])
Statico
Inserisci Forse[b] No No No No No
Aggiornamento Forse[b] No No No No No
Elimina Forse[b] No No No No No
Gestito da keyset
Inserisci Forse[b] No No No No No
Aggiornamento No No
Elimina Forse[b] No No
Dinamico
Inserisci No
Aggiornamento No No
Elimina No No

[a] Le lettere tra parentesi indicano il livello di isolamento della transazione contenente il cursore; il livello di isolamento dell'altra transazione (in cui è stata apportata la modifica) è irrilevante.

RU: Lettura senza commit

RC: Lettura con commit

RR: Lettura ripetibile

S: Serializzabile

[b] Dipende dalla modalità di implementazione del cursore. Il fatto che il cursore possa rilevare o meno queste modifiche viene segnalato tramite l'opzione SQL_STATIC_SENSITIVITY in SQLGetInfo.