srv_paramset (Utökad lagrad procedur API)

Gäller för:SQL Server

Important

Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd istället CLR-integration.

Sätter värdet på en fjärrlagrad procedur anropsreturparameter. Denna funktion har ersatts av srv_paramsetoutput funktionen.

Syntax

  
int srv_paramset (  
SRV_PROC *  
srvproc  
,  
int  
n  
,   
void *  
data  
,  
int  
len   
);  

Arguments

srvproc
Är en pekare till den SRV_PROC struktur som är handtaget för en viss klientanslutning (i detta fall handtaget som tog emot anropet för fjärrlagrad procedur). Strukturen innehåller information som Extended Stored Procedure API-biblioteket använder för att hantera kommunikation och data mellan applikationen och klienten.

n
Indikerar numret på parametern som ska sättas. Den första parametern är 1.

data
Är en pekare till datavärdet som ska skickas tillbaka till klienten som den fjärranslutna återställningsparametern för lagrad procedur.

längd
Specificerar den faktiska längden på den data som ska returneras. Om datatypen för parametern har konstant längd och inte tillåter nollvärden (till exempel srvbit eller srvint1), ignoreras len .

Returns

SUCCEED om parametervärdet sattes framgångsrikt; annars, MISSLYCKAS. FAIL returneras när det inte finns någon aktuell fjärrlagrad procedur, när det inte finns någon n:te fjärrlagrad procedurparameter, när parametern inte är en returparameter och när len-argumentet inte är lagligt.

Om lenär 0 returnerar den NULL. Att sätta len till 0 är det enda sättet att returnera NULL till klienten.

Denna funktion returnerar följande värden om parametern är en av Microsoft SQL Server 2005 (9.x) datatyper.

Nya datatyper Returnerande datalängde
BITN NULL:len = 0, data = IG, RET = 0

NOLL: Ej tillgängligt

>=255: Ej/A

<255: Ej tillgänglig
BIGVARCHAR NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = giltig, RET = 0

<255:len = <8k, data = giltig, RET = 1
BIGCHAR NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = giltig, RET = 0

<255:len = <8k, data = giltig, RET = 1
BIGBINARY NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = giltig, RET = 0

<255:len = <8k, data = giltig, RET = 1
BIGVARBINARY NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = giltig, RET = 0

<255:len = <8k, data = giltig, RET = 1
NCHAR NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = giltig, RET = 0

<255:len = <8k, data = giltig, RET = 1
NVARCHAR NULL:len = 0, data = IG, RET = 1

ZERO:len = IG, data = IG, RET = 0

>=255:len = max8k, data = giltig, RET = 0

<255:len = <8k, data = giltig, RET = 1
NTEXT NULL:len = IG, data = IG, RET = 0

ZERO:len = IG, data = IG, RET = 0

>=255:len = IG, data = IG, RET = 0

<255:len = IG, data = IG, RET = 0
RET = Returvärde av srv_paramset
IG = Värdet kommer att ignoreras
giltig = Vilken som helst giltig pekare till data

Remarks

Parametrar innehåller data som skickas mellan klienter och applikationen med fjärrlagrade procedurer. Klienten kan ange vissa parametrar som returparametrar. Dessa returparametrar kan innehålla värden som Open Data Services-serverapplikationen skickar tillbaka till klienten. Att använda returparametrar är analogt med att skicka parametrar via referens.

Du kan inte sätta returvärdet för en parameter som inte anropades som returparameter. Du kan använda srv_paramstatus för att avgöra hur parametern anropades.

Denna funktion sätter returvärdet för en parameter men skickar faktiskt inte returvärdet till klienten. Alla returparametrar, oavsett om deras returvärden har satts med srv_paramset eller inte, skickas automatiskt till klienten när srv_senddone anropas med statusflaggan SRV_DONE_FINAL satt.

När ett fjärranrop med lagrad procedur görs med parametrar kan parametrarna skickas antingen med namn eller position (utan namn). Om anropet för fjärrlagrad procedur görs med vissa parametrar som skickas med namn och några med position, uppstår ett fel. Den SRV_RPC hanteraren anropas fortfarande, men det verkar som om det inte fanns några parametrar, och srv_rpcparams returnerar 0.

Important

Du bör noggrant granska källkoden för utökade lagrade procedurer, och du bör testa de kompilerade DLL:erna innan du installerar dem på en produktionsserver. För information om säkerhetsgranskning och testning, se denna Microsoft-webbplats.