DB2ResultSetOptions 枚举用于指定 DB2ResultSet 类的选项。DB2ResultSetOptions 枚举由位标识组成,位标识可以与按位操作组合。
[Visual Basic]
<Serializable>
Public Enum DB2ResultSetOptions
[C#]
[Serializable]
public enum DB2ResultSetOptions
[C++]
[Serializable]
__value public enum DB2ResultSetOptions
[JScript]
public
Serializable
enum DB2ResultSetOptions
| 成员名 | 位值 | 描述 |
|---|---|---|
| None | 0 | 没有任何选项。对 DB2ResultSet 对象指定了仅正向游标。 |
| Scrollable | 1 | 对 DB2ResultSet 对象指定了可滚动游标。 |
| Sensitive | 2 | 为 DB2ResultSet 对象指定了敏感的可滚动游标,它可以识别由应用程序或其他游标所作的更新和插入。 |
| SkipDeleted | 8 | 为 DB2ResultSet 对象指定了敏感的可滚动游标,它可以跳过它自身或其他游标删除的行。使用 SkipDeleted 选项时,不能假定一行上的某一位置被标记为已删除(例如,当 IsDeleted() 返回 true 时)。 |
| Updatable | 4 | 为 DB2ResultSet 对象指定了可更新的游标。 |
Informix® 数据库仅支持 ForwardOnly 和 Static 游标类型。如果 SELECT 语句不具有主键、序列或行标识,那么游标为只读。
| 组合 | None | Scrollable | Updatable | Sensitive | SkipDeleted | DB2ResultSet.CursorType |
|---|---|---|---|---|---|---|
| 组合 1 | X | ForwardOnly | ||||
| 组合 2 | X | Static | ||||
| 组合 3 | X | X | Keyset | |||
| 组合 4 | X | X | X | Keyset | ||
| 组合 5 | X | X | X | Keyset | ||
| 组合 6 | X | X | X | X | Keyset |
使用 DB2Command.ExecuteResultSet 方法创建 DB2ResultSet 对象时,可以使用 DB2ResultSetOptions 枚举或 DB2CursorType 枚举来定义 DB2ResultSet 实例的功能。上表显示了与 DB2ResultSetOptions 值的每个可接受组合相对应的 DB2ResultSet.CursorType 值。如果应用程序需要一个使用 Dynamic 游标的 DB2ResultSet 对象,那么您必须使用 DB2CursorType.Dynamic 枚举值运行 DB2Command.ExecuteResultSet 方法。
缺省键集驱动的游标是值并行游标。值并行游标导致乐观锁定,这些锁定在尝试更新或删除前不会挂起。如果已显式地请求锁定并行,那么将使用悲观锁定,并且一旦读取行,就会挂起锁定。(只有 DB2® for Linux, UNIX, and Windows 服务器才支持此锁定级别。)尝试更新或删除时,数据库服务器将对应用程序检索的先前值与底层表中的当前值进行比较。如果值匹配,那么更新或删除成功。如果值不匹配,那么操作失败。失败时,如果应用程序仍可用,那么应用程序可以再次查询值并重新发出更新或删除。
添加至键集游标驱动的 DB2ResultSet 对象的行将插入服务器上的表中,但不会添加至服务器的结果集中。因此,这些行不可更新,对其他事务所作的更改也不敏感。在客户机上对插入的行进行高速缓存后,这些行将成为结果集的一部分。应用程序结果集不会影响在服务器端发生的任何触发器操作,这是因为在任何服务器端启动更改之前,已对结果集进行高速缓存。为了使插入的行可更新、敏感以及看到适用的触发器的结果,应用程序必须再次发出查询以重新生成结果集。
仅当访问支持可滚动游标的数据服务器时,才支持使用键集游标的 DB2ResultSet 对象。
为了在动态可滚动游标的结果集中插入、更新或删除行,结果集必须将至少一个唯一键的所有列包含在基本表中。此唯一键可以是主键或任何其他唯一键。
仅当访问支持动态游标的数据服务器时,才支持使用动态游标的 DB2ResultSet 对象。当前,动态游标仅受 DB2 for z/OS® 服务器支持。