sp_cursoroption (Transact-SQL)
设置游标选项或返回由 sp_cursoropen 存储过程创建的游标信息。 通过在表格格式数据流 (TDS) 包中指定 ID = 8 来调用 sp_cursoroption。
语法
sp_cursoroption cursor, code, value
参数
cursor
是由 SQL Server 生成并由 sp_cursoropen 存储过程返回的“句柄”值。 cursor 需要以下 int 输入值以用于执行。code
用于规定游标返回值的不同因素。 code 需要以下 int 输入值之一:值
名称
说明
0x0001
TEXTPTR_ONLY
返回某些指定文本或图像列的文本指针,而非实际数据。
TEXTPTR_ONLY 允许将文本指针用作指向 Blob 对象的“句柄”,您以后可以使用 Transact-SQL 或 DBLIB 工具(例如,Transact-SQL READTEXT 或 DBLIB DBWRITETEXT)有选择性地检索或更新这些对象。
如果分配了值“0”,则选择列表中的所有文本和图像列将返回文本指针而非数据。
0x0002
CURSOR_NAME
将在 value 中指定的名称分配给游标。 这又允许 ODBC 对通过 sp_cursoropen 打开的游标使用 Transact-SQL 定位的 UPDATE/DELETE 语句。
可以将此字符串指定为任何字符或 Unicode 数据类型。
因为默认情况下,Transact-SQL 定位的 UPDATE/DELETE 语句针对 FAT 游标中的第一行运行,所以,应在发出定位的 UPDATE/DELETE 语句之前,使用 sp_cursor SETPOSITION 来定位游标。
0x0003
TEXTDATA
为后续提取中的某些文本或图像列返回实际数据,而非文本指针 (即,此操作撤消了 TEXTPTR_ONLY 的效果)。
如果为某特定列启用了 TEXTDATA,则将重新提取或刷新此行,然后将它发送回 TEXTPTR_ONLY。 借助于 TEXTPTR_ONLY,值参数是一个整数,它指定列编号,并且零值返回所有文本或图像列。
0x0004
SCROLLOPT
滚动选项。 有关其他信息,请参阅本主题后面的“返回代码值”。
0x0005
CCOPT
并发控制选项。 有关其他信息,请参阅本主题后面的“返回代码值”。
0x0006
ROWCOUNT
结果集中的当前行数。
注意 如果正在使用异步填充,则 ROWCOUNT 可能已由于 sp_cursoropen 返回的值而发生了变化。 如果行数未知,则返回值 –1。
value
指定由 code 返回的值。 value 是一个必需参数,它需要 0x0001、0x0002 或 0x0003 code 输入值。注意 code 值 2 是字符串数据类型。 value 输入或返回的任何其他 code 值为整数。
返回代码值
value 参数可能返回以下 code 值之一。
返回值 |
说明 |
---|---|
0x0004 |
SCROLLOPT |
0X0005 |
CCOPT |
0X0006 |
ROWCOUNT |
value 参数返回以下 SCROLLOPT 值之一。
返回值 |
说明 |
---|---|
0x0001 |
KEYSET |
0x0002 |
DYNAMIC |
0x0004 |
FORWARD_ONLY |
0x0008 |
STATIC |
value 参数返回以下 CCOPT 值之一。
返回值 |
说明 |
---|---|
0x0001 |
READ_ONLY |
0x0002 |
SCROLL_LOCKS |
0x0004 或 0x0008 |
OPTIMISTIC |