Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 10.0.1 » UltraLite - Database Management and Reference » Introducing UltraLite » UltraLite transaction and state management » UltraLite transaction processing and isolation levels

UltraLite transaction processing and isolation levels Next Page

Isolation level side effects

UltraLite operates at an isolation level of 0. You cannot change the isolation level in UltraLite. This means you should interpret the result of your queries with this limitation in mind.

An isolation level of 0 means the following side effects are possible:


Consider two connections, A and B, each with their own transactions.

  1. As connection A works with the result set of a query, UltraLite fetches a copy of the current row into a buffer.


    Reading or fetching a row does not lock the row. If connection A fetches but does not modify a row, connection B can still modify the row.

  2. As A modifies the current row, it changes the copy in the buffer. The copy in the buffer is written back into the database when connection A calls an Update method or closes the result set.

  3. A write lock is placed on the row to prevent other transactions from modifying it. This modification is uncommitted, until connection A performs a commit.

  4. Depending on the modification, if connection B fetches the current row, it may experience the following:

    Connection A's modificationResult1
    Row has been deleted.Connection B gets the next row in the result set.
    Row has been modified.Connection B gets the latest copy of the row.

    1Queries used by Connection A and B do not contain temporary tables. Temporary tables can cause other side effects.