MDAC 2.5 SDK - ODBC Programmer's Reference
Chapter 14: Transactions


 

Scrollable Cursors and Transaction Isolation

The following table lists the factors governing the visibility of changes.

Changes made by: Visibility depends on:
Cursor Cursor type, cursor implementation
Other statements in same transaction Cursor type
Statements in other transactions Cursor type, transaction isolation level

These factors are shown in the following illustration.

Visibility of Changes

The following table summarizes the ability of each cursor type to detect changes made by itself, by other operations in its own transaction, and by other transactions. The visibility of the latter changes depends on the cursor type and the isolation level of the transaction containing the cursor.


Cursor type\action


Self

Own
Txn
Othr
Txn
(RU[a])
Othr
Txn
(RC[a])
Othr
Txn
(RR[a])
Othr
Txn
(S[a])
Static            
   Insert Maybe[b] No No No No No
   Update Maybe[b] No No No No No
   Delete Maybe[b] No No No No No
Keyset-driven            
   Insert Maybe[b] No No No No No
   Update Yes Yes Yes Yes No No
   Delete Maybe[b] Yes Yes Yes No No
Dynamic            
   Insert Yes Yes Yes Yes Yes No
   Update Yes Yes Yes Yes No No
   Delete Yes Yes Yes Yes No No

[a]   The letters in parentheses indicate the isolation level of the transaction containing the cursor; the isolation level of the other transaction (in which the change was made) is irrelevant.

     RU: Read uncommitted
     RC: Read committed
     RR: Repeatable read
      S: Serializable

[b]   Depends on how the cursor is implemented. Whether the cursor can detect such changes is reported through the SQL_STATIC_SENSITIVITY option in SQLGetInfo.