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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » 使用 SQL Anywhere 编程简介 » 在应用程序中使用 SQL

 

SQL Anywhere 游标

任何游标一经打开,就会有一个关联的结果集。游标在一定的时间长度内保持打开状态。在这段时间内,与该游标关联的结果集可能被更改,要么是通过游标本身更改,要么是根据隔离级别要求被其它事务更改。有些游标允许看到对基础数据的更改,而其它游标却不会反映出这些更改。对基础数据的更改的敏感性会导致不同的游标行为或称为游标敏感性

SQL Anywhere 为游标提供了各种敏感性特性。本节介绍什么是敏感性,并介绍游标的敏感性特性。

本节假定您阅读过什么是游标?

成员资格、顺序和值更改

对基础数据的更改会在下列几个方面影响游标的结果集:

  • 成员资格   结果集中的行集,如它们的主键值所标识的。

  • 顺序   结果集中行的顺序。

  • 值   结果集中行的值。

例如,请看以下带有雇员信息的简单表(EmployeeID 是主键列):

EmployeeID Surname
1 Whitney
2 Cobb
3 Chin

下列查询上的游标将按主键顺序返回表中的所有结果:

SELECT EmployeeID, Surname
FROM Employees
ORDER BY EmployeeID;

通过添加新行或删除行可更改结果集的成员资格。值可以通过更改表中的名称来进行更改。顺序可以通过更改雇员的主键值来进行更改。

可见的和不可见的更改

根据隔离级别要求,游标的结果集的成员资格、顺序和值可以在游标打开之后进行更改。根据所使用的游标类型不同,通过应用程序所看到的结果集可能会更改以反映出这些更改,也可能不会更改。

对基础数据的更改可能会通过游标看到,也可能看不到。可见的更改是反映在游标的结果集中的更改。如果对基础数据的更改不反映在通过游标所看到的结果集中,那么这种更改就是不可见的。


游标敏感性概述
游标敏感性示例:删除的行
游标敏感性示例:更新的行
不敏感游标
敏感游标
敏感性未定型游标
对值敏感的游标
游标敏感性和性能
游标敏感性和隔离级别
请求 SQL Anywhere 游标