sp_cursoroption (Transact-SQL)

适用于:SQL Server

设置游标选项或返回由 sp_cursoropen 存储过程创建的游标信息。 sp_cursoroption 通过在表格格式数据流 (TDS) 包中指定 ID = 8 来调用。

Transact-SQL 语法约定

语法

  
sp_cursoroption cursor, code, value  

参数

cursor
由 SQL Server 生成并由sp_cursoropen存储过程返回的句柄值。 游标 需要 int 输入值来执行。

code
用于规定游标返回值的不同因素。 代码 需要以下 int 输入值之一:

名称 说明
0x0001 TEXTPTR_ONLY 返回某些指定文本或图像列的文本指针,而非实际数据。

TEXTPTR_ONLY允许将文本指针用作 blob 对象的 句柄 ,这些对象稍后可以使用 Transact-SQL 或 DBLIB 设施 (选择性地检索或更新这些对象,例如 Transact-SQL READTEXT 或 DBLIB DBWRITETEXT) 。

如果分配了值“0”,则选择列表中的所有文本和图像列将返回文本指针而非数据。
0x0002 CURSOR_NAME 中指定的名称分配给游标。 这又允许 ODBC 在通过sp_cursoropen打开的游标上使用 Transact-SQL 定位的 UPDATE/DELETE 语句。

可以将此字符串指定为任何字符或 Unicode 数据类型。

由于 Transact-SQL 定位的 UPDATE/DELETE 语句默认在胖游标的第一行上运行,sp_cursor SETPOSITION 应用于在发出定位的 UPDATE/DELETE 语句之前定位游标。
0x0003 TEXTDATA 为后续提取中的某些文本或图像列返回实际数据,而非文本指针(也即,此操作撤消了 TEXTPTR_ONLY 的效果)。

如果为某特定列启用了 TEXTDATA,则将重新提取或刷新此行,然后将它发送回 TEXTPTR_ONLY。 借助于 TEXTPTR_ONLY,值参数是一个整数,它指定列编号,并且零值返回所有文本或图像列。
0x0004 SCROLLOPT 滚动选项。 有关其他信息,请参阅本主题后面的“返回代码值”。
0x0005 CCOPT 并发控制选项。 有关其他信息,请参阅本主题后面的“返回代码值”。
0x0006 ROWCOUNT 结果集中的当前行数。

注意:如果使用的是异步填充,则自 sp_cursoropen 返回的值以来,ROWCOUNT 可能已更改。 如果行数未知,则返回值 -1。

value
指定 代码返回的值。 value 是调用0x0001、0x0002或0x0003 代码 输入值的必需参数。

注意

代码值 2 是字符串数据类型。 任何其他 代码 值输入 或值返回 的值都是整数。

返回代码值

参数可能返回以下代码值之一。

返回值 说明
0x0004 SCROLLOPT
0X0005 CCOPT
0X0006 ROWCOUNT

参数返回以下 SCROLLOPT 值之一。

返回值 说明
0x0001 KEYSET
0x0002 DYNAMIC
0x0004 FORWARD_ONLY
0x0008 STATIC

参数返回以下 CCOPT 值之一。

返回值 说明
0x0001 READ_ONLY
0x0002 SCROLL_LOCKS
0x0004 或 0x0008 OPTIMISTIC

另请参阅

系统存储过程 (Transact-SQL)
sp_cursor (Transact-SQL)
sp_cursoropen (Transact-SQL)