Megosztás a következőn keresztül:


sp_cursorprepare (Transact-SQL)

A következőkre vonatkozik:SQL Server

A kurzor utasítását vagy kötegét végrehajtási tervbe állítja össze, de nem hozza létre a kurzort. A lefordított utasítást később sp_cursorexecutehasználhatja. Ez az eljárás sp_cursorexecuteegyütt ugyanazzal a funkcióval rendelkezik, mint sp_cursoropen, de két fázisra van osztva. sp_cursorprepare meghívása ID = 3 megadásával történik egy táblázatos adatfolyam-(TDS-) csomagban.

Transact-SQL szintaxis konvenciói

Szintaxis

sp_cursorprepare prepared_handle OUTPUT , params , stmt , options
    [ , scrollopt [ , ccopt ] ]
[ ; ]

Érvek

Fontos

A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.

prepared_handle

Sql Server által létrehozott előkészített handle azonosító, amely int értéket ad vissza.

prepared_handle ezután egy sp_cursorexecute eljáráshoz lesz adva a kurzor megnyitásához. Miután létrejött egy leíró, addig létezik, amíg ki nem jelentkezik, vagy amíg nem távolítja el explicit módon egy sp_cursorunprepare eljárással.

params

Paraméteres utasításokat azonosít. A paraméterjelek változók definíciója a paraméterjelölők helyett szerepel az utasításban. params egy kötelező paraméter, amely ntext, ncharvagy nvarchar bemeneti értéket hív meg. Adjon meg egy NULL értéket, ha az utasítás nincs paraméterezve.

Ha stmt paraméteres, és a scrollopt PARAMETERIZED_STMT értéke be van kapcsolva, használjon egy ntext sztringet bemeneti értékként.

stmt

Meghatározza a kurzor eredményhalmazát. Az stmt paraméterre van szükség, és ntext, **nchar vagy nvarchar bemeneti értéket kér.

A stmt érték megadásának szabályai megegyeznek a sp_cursoropen, azzal a kivétellel, hogy az stmt sztring adattípusának ntextkell lennie.

beállítások

A kurzor eredményhalmaz oszlopainak leírását adja vissza. A beállítások paraméter int, alapértelmezett értéke NULL. Ha 0x0001értékre van állítva , az azt jelenti , hogy RETURN_METADATA.

scrollopt

Görgetési lehetőség. A scrollopt paraméter egy opcionális paraméter, amely az alábbi bemeneti értékek egyikét igényli.

Érték Leírás
0x0001 KEYSET
0x0002 DYNAMIC
0x0004 FORWARD_ONLY
0x0008 STATIC
0x10 FAST_FORWARD
0x1000 PARAMETERIZED_STMT
0x2000 AUTO_FETCH
0x4000 AUTO_CLOSE
0x8000 CHECK_ACCEPTED_TYPES
0x10000 KEYSET_ACCEPTABLE
0x20000 DYNAMIC_ACCEPTABLE
0x40000 FORWARD_ONLY_ACCEPTABLE
0x80000 STATIC_ACCEPTABLE
0x100000 FAST_FORWARD_ACCEPTABLE

Mivel előfordulhat, hogy a kért érték nem felel meg a stmtáltal definiált kurzornak, ez a paraméter bemenetként és kimenetként is szolgál. Ilyen esetekben az SQL Server egy megfelelő értéket rendel hozzá.

ccopt

Egyidejűség-vezérlési lehetőség. ccopt egy választható paraméter, amely az alábbi bemeneti értékek egyikét igényli.

Érték Leírás
0x0001 READ_ONLY
0x0002 SCROLL_LOCKS (korábban LOCKCC)
0x0004 OPTIMISTIC (korábban OPTCC)
0x0008 OPTIMISTIC (korábban OPTCCVAL)
0x2000 ALLOW_DIRECT
0x4000 UPDT_IN_PLACE
0x8000 CHECK_ACCEPTED_OPTS
0x10000 READ_ONLY_ACCEPTABLE
0x20000 SCROLL_LOCKS_ACCEPTABLE
0x40000 OPTIMISTIC_ACCEPTABLE
0x80000 OPTIMISTIC_ACCEPTABLE

Ahogy görgethető, az SQL Server a kért értéktől eltérő értéket rendelhet hozzá.

Megjegyzések

Az RPC állapotparaméter az alábbi értékek egyike:

Érték Leírás
0 Siker
0x0001 Kudarc
1FF6 Nem sikerült visszaadni a metaadatokat.

Megjegyzés: Ennek az az oka, hogy az utasítás nem hoz létre eredményhalmazt; Ez például egy INSERT vagy DDL utasítás.

Példák

Az alábbi kód egy példa a sp_cursorprepare és a sp_cursorexecutehasználatára:

DECLARE @handle AS INT, @p5 AS INT, @p6 AS INT;

EXECUTE sp_cursorprepare
    @handle OUTPUT,
    N'@dbid int',
    N'select * from sys.databases where database_id < @dbid',
    1,
    @p5 OUTPUT,
    @p6 OUTPUT;

DECLARE @p1 AS INT;
SET @P1 = @handle;

DECLARE @p2 AS INT;
DECLARE @p3 AS INT;
DECLARE @p4 AS INT;
SET @P6 = 4;

EXECUTE sp_cursorexecute
    @p1,
    @p2 OUTPUT,
    @p3 OUTPUT,
    @p4 OUTPUT,
    @p5 OUTPUT,
    @p6;

EXECUTE sp_cursorfetch @P2;
EXECUTE sp_cursorunprepare @handle;
EXECUTE sp_cursorclose @p2;

Ha stmt paraméteres, és a scrolloptPARAMETERIZED_STMT értéke ON, a sztring formátuma a következő formában van:

<parameter_name> <data_type> [ ,... n ]