【IT168 技术】游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) 游标与 SQL Server 中使用的游标类似。本节将给大家详细的介绍它们。
系列文章:
SQL Server Compact 3.5 支持下列游标类型:
1、 基表
2、 静态
3、 只进
4、 只进/只读
5、 键集驱动
一、基表游标
基表游标是可用的最低级别的游标。 这些游标直接在存储引擎上工作,是所有支持的游标类型中速度最快的游标。 基表游标可以最低开销向前或向后滚动,并且可以更新。
您还可以直接在索引上打开游标。 此类游标支持索引,以便对表中的行进行排序、允许查找特定值以及基于索引中的值的范围对行进行限制。
基表游标具有动态成员身份。 这意味着,在同一个表上打开的两个游标可以立即看见对数据的插入、删除和更改(假定它们两个都在同一事务作用范围内)。 由于可以更新基表游标,因此客户端可以使用此类游标来更改基本数据。
基表游标无法表示查询结果。 查询结果(例如 SELECT * FROM tablename)无法通过基表游标返回。 而是使用支持的查询结果游标返回结果。
下面的示例说明如何使用 ADO .NET 获取基表游标:
cmd.CommandText = "tablename";
cmd.CommandType = CommandType.TableDirect;
SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);
下面的示例说明如何使用 ADO .NET 获取索引游标:
cmd.IndexName = "indexname";
cmd.CommandType = CommandType.TableDirect;
SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);
二、静态游标
静态游标(在以前的 SQL Server Compact 3.5 版本中称为可滚动查询游标)可以创建和存储结果集的完整副本。 当用户显式请求检索的长整型值数据时例外。 只有在需要时才填充此结果集。 这与 SQL Server 不同,后者在创建游标时就会填充结果集。 静态游标支持向后滚动和向前滚动,但不支持更新。 静态游标无法看见外部对不敏感的数据所做的更改。 在游标的生存周期内将缓存查询结果。 尽管静态游标比只进游标功能更强,但静态游标速度较慢,并且会使用更多的内存。 建议只有在需要滚动并且键集游标不合适时再考虑使用静态游标。
下面的示例说明如何使用 ADO.NET 获取静态游标:
SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Insensitive);