sp_cursoroption (Transact-SQL)
設定資料指標選項或傳回 sp_cursoropen 預存程序所建立的資料指標資訊。 sp_cursoroption 的叫用方式是在表格式資料流 (TDS) 封包中指定 ID =8。
語法
sp_cursoroption cursor, code, value
引數
cursor
這是 SQL Server 所產生及 sp_cursoropen 預存程序所傳回的「控制代碼」(Handle) 值。 cursor 需要 int 輸入值才能執行。code
用來保證資料指標的各種因數一定會傳回值。 code 必須具有下列其中一個 int 輸入值:值
名稱
說明
0x0001
TEXTPTR_ONLY
針對某些指定的 text 或 image 資料行傳回文字指標,而不是實際的資料。
TEXTPTR_ONLY 可讓文字指標當做 blob 物件的「控制代碼」(Handle) 使用,之後可以選擇性方式透過 Transact-SQL 或 DBLIB 功能 (如 Transact-SQL READTEXT 或 DBLIB DBWRITETEXT) 來加以擷取或更新。
如果指派 "0" 值,選取清單中的所有 text 和 image 資料行將會傳回文字指標,而不是資料。
0x0002
CURSOR_NAME
將 value 中指定的名稱指派給資料指標。 接著讓 ODBC 在透過 sp_cursoropen 開啟的資料指標上使用 Transact-SQL 定位陳述式 UPDATE/DELETE。
此字串可以指定為任何字元或 Unicode 資料類型。
自從 Transact-SQL 定位陳述式 UPDATE/DELETE 運作之後,sp_cursor SETPOSITION 預設應該在寬鬆資料指標的第一個資料列上用來定位資料指標,然後再發出定位陳述式 UPDATE/DELETE。
0x0003
TEXTDATA
在後續的提取上,針對某些 text 或 image 資料行傳回實際資料,而不是文字指標 (也就是說, 這樣會復原 TEXTPTR_ONLY 的作用)。
如果針對特定的資料行啟用 TEXTDATA,將會重新提取或重新整理資料列,而且可以設定回 TEXTPTR_ONLY。 如果是 TEXTPTR_ONLY,值參數是一個指定資料行編號的整數,以及傳回所有 text 或 image 資料行的零值。
0x0004
SCROLLOPT
捲動選項。 如需詳細資訊,請參閱這個主題稍後的「傳回碼值」。
0x0005
CCOPT
並行控制選項。 如需詳細資訊,請參閱這個主題稍後的「傳回碼值」。
0x0006
ROWCOUNT
目前結果集中的資料列數目。
[!附註]
如果正在使用非同步擴展,自從 sp_cursoropen 傳回值之後 ROWCOUNT 可能已經變更。 如果資料列數目未知,則會傳回 –1 的值。
value
指定 code 傳回的值。 value 是呼叫 0x0001、0x0002 或 0x0003 code 輸入值的必要參數。[!附註]
code 值為 2 表示字串資料類型。 其他任何 code 值輸入或 value 傳回的值為整數。
傳回碼值
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 |