尽管⽬前基于SQL语句的后台数据库所⽀持的语⾔都⼤致相当,但对游标的⽀持却有着⼀些差异,例如对滚动游标⽀持。所谓滚动游标,就是程序员可以指定游标向前后任意⼀个⽅向滚动。如在Informix中,您甚⾄还可以将游标滚向结果集开头或末尾,使⽤的语句分别是FETCH FIRST,FETCH LAST、FETCH PRIOR 和FETCH NEXT。
当程序员⽤FETCH语句,其缺省是指FETCH NEXT。由于滚动是在数据库后台实现的,所以滚动游标为⽤户编程提供了极⼤的⽅便。
对游标⽀持的另⼀个不同是可修改游标。游标的使⽤都是指只读游标,⽽象Oracle、Sybase等数据库却另外⽀持可作修改的游标。使⽤这样的数据库,您可以修改或删除当前游标所在的⾏。例如修改当前游标所在⾏的⽤户的余额,我们可以如下操作:
UPDATE customer
SET balance=1000
WHERE CURRENT of customerCursor;
删除当前⾏的操作如下:
DELETE FROM Customer
WHERE CURRENT OF CustomerCursor;
但是如果您当前使⽤的数据库是Sybase,您需要修改数据库的参数,将游标可修改的值定为1,才能执⾏上述操作。这⼀赋值在连接数据库的前后进⾏均可。
SQLCA.DBParm="Cursor Update=1"