分类: Sybase
2008-04-11 11:01:36
来源:赛迪网 作者:limeinan |
当您在应用程序中执行查询时,结果集由许多行组成。通常,您执行查询之前并不知道应用程序要接收多少行。游标提供了在应用程序中处理查询结果集的方式。
您使用游标的方式,以及您可以使用的游标的种类,取决于您使用的编程接口。有关每个接口可用的游标类型的列表,请参见 " 游标的可用性 "。
您可以利用游标在任何编程接口内执行下面的任务:
•在查询的结果内循环。
•在结果集内的任何点的基础数据上执行插入、更新和删除。
此外,一些编程接口可使您使用特殊功能调整结果集返回到应用程序的方式,为您的应用程序提供了实实在在的性能优点。
什么是游标?
游标是一与结果集相关联的名称。该结果集是从 SELECT 语句或存储过程调用获得的。
游标是结果集上的句柄。任何时候,游标在结果集内都有定义明确的位置。利用游标您可以检查并可能一次一行地操纵数据。在 AdaptiveServer Anywhere 中,游标可以在查询结果中前后移动。
游标位置
游标可以位于以下位置:
•在结果集的第一行之前。
•在结果集的某一行上。
•在结果集的最后一行之后。
游标位置和结果集是在数据库服务器中维护的。客户端会一次一行或一次多行地读取行,以便显示和处理。整个结果集不需要传输到客户端。
使用游标的优点
数据库应用程序中不一定需要使用游标,但使用游标确实具有很多好处。其好处就在于:若不使用游标,那么要进行处理和显示时,就必须将整个结果集传输到客户端:
•客户端内存
如果结果集较大,要在客户端上保存整个结果集,就会需要更多的内存。
•响应时间 游标可以在整个结果集汇编起来之前提供开头几行。如果您不使用游标,那么在整个结果集全部传递过来之前,您的应用程序不会显示任何行。
并发控制 如果您对数据进行多次更新而不在应用程序中使用游标,那么您必须向数据库服务器分别发送多条 SQL 语句来实施这些更改。如果结果集在客户端查询之后又发生了更改,就有可能带来并发问题。结果,就可能会导致更新丢失。
游标作为其下数据的指针,因此会对您进行的任何更改都强制执行适当的并发约束。 |