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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 编程 » ODBC 支持 » ODBC 应用程序中的结果集

 

ODBC 事务隔离级别

可使用 SQLSetConnectAttr 为连接设置事务隔离级别。确定 SQL Anywhere 提供的事务隔离级别的特性包括以下几种:

  • SQL_TXN_READ_UNCOMMITTED   将隔离级别设置为 0。在设置此特性值后,它会隔离任何从其他用户所做的更改读取的数据,且其他用户所做的更改将不可见。其他用户重新执行读取语句时将会受到影响。它不支持可重复的读取。这是隔离级别的缺省值。

  • SQL_TXN_READ_COMMITTED   将隔离级别设置为 1。在设置此特性值后,它不会隔离任何从其他用户所做的更改读取的数据,且其他用户所做的更改将可见。其他用户重新执行读取语句时将会受到影响。它不支持可重复的读取。

  • SQL_TXN_REPEATABLE_READ   将隔离级别设置为 2。在设置此特性值后,它会隔离任何从其他用户所做的更改读取的数据,且其他用户所做的更改将不可见。其他用户重新执行读取语句时将会受到影响。它支持可重复的读取。

  • SQL_TXN_SERIALIZABLE   将隔离级别设置为 3。在设置此特性值后,它会隔离任何从其他用户所做的更改读取的数据,且其他用户所做的更改将不可见。其他用户重新执行读取语句时将不会受到影响。它支持可重复的读取。

  • SA_SQL_TXN_SNAPSHOT   将隔离级别设置为快照。设置此特性后,它将为整个事务提供数据库的单个视图。

  • SA_SQL_TXN_STATEMENT_SNAPSHOT   将隔离级别设置为语句快照。设置此属性值后,它所提供的一致性要比快照隔离差,但是当出现由于长时间运行事务而导致临时文件中版本存储所用的空间过大的情况时,它将非常有用。

  • SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT   将隔离级别设置为只读语句快照。设置此属性值后,它所提供的一致性要比语句快照隔离差,但可避免出现更新冲突的可能性。因此,它最适用于移植那些最初打算在不同隔离级别下运行的应用程序。

allow_snapshot_isolation 数据库选项必须设置为 On 才能使用快照、语句快照或只读语句快照设置。

有关详细信息,请参见 Microsoft 的ODBC API Reference中的 SQLSetConnectAttr,网址为 [external link] http://msdn.microsoft.com/zh-cn/library/ms713605.aspx

 示例