游标输入模式

为了输入,游标以顺序的滚动的两种模式中的一种运行。顺序的游标仅可访存序列中的下一行,因此,每一次打开游标,顺序的游标仅可通读表一次。滚动游标可访存下一行或任何输出行,因此,滚动游标可多次读取相同的行。下列示例展示在 GBase 8s ESQL/C 中声明的顺序的游标。
EXEC SQL DECLARE pcurs cursor for
          SELECT customer_num, lname, city
          FROM customer;
在打开游标之后,仅可使用检索下一行数据的顺序的访存来使用它,如下例所示:
EXEC SQL FETCH p_curs into:cnum, :clname, :ccity;

每一顺序的访存返回一个新行。

使用关键字 SCROLL CURSOR 声明滚动游标,如来自 GBase 8s ESQL/C 的下列示例所示的那样:
EXEC SQL DECLARE s_curs SCROLL CURSOR FOR
          SELECT order_num, order_date FROM orders
          WHERE customer_num > 104
使用不同的访存选项来使用滚动游标。例如,ABSOLUTE 选项指定要访存的行的绝对行位置。
EXEC SQL FETCH ABSOLUTE :numrow s_curs
          INTO :nordr, :nodat

此语句访存在主变量 numrow 中给出其位置的行。您还可在此访存当前的行,或您可访存第一行然后再次扫描所有行。然而,这些特性可能导致应用程序运行得更慢,如下一部分描述的那样。要了解适用于滚动游标的附加的选项,请参阅 GBase 8s SQL 指南:语法 中的 FETCH 语句。