教你快速理解游标的“可用性”和“属性”

来源:岁月联盟 编辑:zhuzhu 时间:2008-02-02

游标的可用性和属性:

游标的可用性:

并非所有的接口都为所有的游标类型提供支持。

ODBC 和 OLE DB (ADO) 支持所有的游标类型。

嵌入式 SQL 支持所有的游标类型。

ADO.NET 只提供只进、只读游标。

对于 JDBC

jConnect 4.x 只提供敏感性未定型游标。

jConnect 5.x 支持所有类型的游标,但是可滚动游标会导致性能严重下降。

iAnywhere JDBC 驱动程序支持所有类型的游标。

Sybase Open Client 只支持敏感性未定型游标。此外,在使用可更新的非唯一游标时,会产生严重的性能下降。

游标属性

您可以显式或者隐式从编程接口请求游标类型。不同的接口库提供不同的游标类型选择。例如, JDBC 和 ODBC 指定了不同的游标类型。

每个游标类型都由许多特性来定义:

唯一性 声明游标是唯一的将强制查询返回唯一地标识每一行所需要的所有列。通常,这意味着返回主键中的所有列。所需要的但未指定的任何列都要添加到结果集中。缺省游标类型是非唯一的。

可更新性 声明为只读的游标不能在定位更新或删除操作中使用。

缺省游标类型是可更新的。

可滚动性 您可以这样声明游标:当您在结果集中移动时,它表现出不同的行为。某些游标可以只读取当前行或后面的行。其它一些游标可以在结果集中往返移动。

敏感性

通过游标也许可以看到对数据库的更改,也许看不到。

这些特性可能会对性能以及数据库服务器内存的使用产生明显的副作用。

Adaptive Server Anywhere 可产生具有这些特性中的各种混合特性的游标。当您请求给定类型的游标时, Adaptive Server Anywhere 将尽可能匹配那些特性。

某些情况下,并非所有特性都可以提供。例如, Adaptive Server Anywhere 中的不敏感游标必须是只读的。假如您的应用程序请求可更新的不敏感游标,提供给它的将是别的类型的游标 (对值敏感)。