srv_paramlen (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.

Returnerar datastorleken för en fjärrlagrad proceduranropsparameter. Denna funktion har ersatts av srv_paraminfo funktionen.

Syntax

  
int srv_paramlen (  
SRV_PROC *  
srvproc  
,  
int  
n   
);  

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
Anger numret på parametern. Den första parametern är 1.

Returns

Den faktiska längden, i bytes, av parameterdatan. Om det inte finns någon n:te parameter eller ingen fjärrlagrad procedur returnerar den -1. Om den n:te parametern är NULL, returnerar den 0.

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

Nya datatyper Indatans längd
BITN NULL: 1

NOLL: 1

>=255: Ej/A

<255: Ej tillgänglig
BIGVARCHAR NULL: 0

NOLL: 1

>=255: 255

<255: Faktiska Len
BIGCHAR NULL: 0

NOLL: 255

>=255: 255

<255: 255
BIGBINARY NULL: 0

NOLL: 255

>=255: 255

<255: 255
BIGVARBINARY NULL: 0

NOLL: 1

>=255: 255

<255: Faktiska Len
NCHAR NULL: 0

NOLL: 255

>=255: 255

<255: 255
NVARCHAR NULL: 0

NOLL: 1

>=255: 255

<255: Faktiska Len
NTEXT NULL: -1

ZERO: -1

>=255: -1

<255: -1

* actual len = Längd på multibyte-teckensträng (cch)

Remarks

Varje fjärrlagrad procedurparameter har en faktisk och en maximal datalängd. För standardtyper av data med fast längd som inte tillåter nollvärden är de faktiska och maximala längderna desamma. För datatyper med variabel längd kan längderna variera. Till exempel kan en parameter deklarerad som varchar(30) ha data som bara är 10 byte lång. Parameterns faktiska längd är 10 och dess maximala längd är 30. Funktionen srv_paramlen får den faktiska datalängden, i bytes, för en fjärrlagrad procedur. För att få maximal datalängd för en parameter, använd srv_parammaxlen.

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.