srv_paramlen (API rozszerzonych procedur przechowywanych)

Dotyczy:SQL Server

Ważna

Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zamiast tego użyj integracji CLR.

Zwraca długość danych parametru wywołania procedury zdalnej. Funkcja ta została zastąpiona przez funkcję srv_paraminfo .

Syntax

  
int srv_paramlen (  
SRV_PROC *  
srvproc  
,  
int  
n   
);  

Arguments

srvproc
Jest wskaźnikiem do struktury SRV_PROC, która jest uchwytem dla konkretnego połączenia klienta (w tym przypadku uchwytu, który otrzymał zdalne wywołanie procedury przechowywanej). Struktura zawiera informacje, które biblioteka API Extended Stored Procedure wykorzystuje do zarządzania komunikacją i danymi między aplikacją a klientem.

n
Wskazuje numer parametru. Pierwszy parametr to 1.

Zwroty

Rzeczywista długość danych parametrów w bajtach. Jeśli nie ma n-tegoparametru lub nie ma zdalnej procedury przechowywanej, zwraca się -1. Jeśli n-typarametr jest NULL, zwraca 0.

Funkcja ta zwraca następujące wartości, jeśli parametr jest jednym z następujących typów danych systemu Microsoft SQL Server 2005 (9.x).

Nowe typy danych Długość danych wejściowych
BITN NULL: 1

ZERO: 1

>=255: N/A

<255: N/A
BIGVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255:rzeczywisty Len
BIGCHAR NULL: 0

ZERO: 255

>=255: 255

<255: 255
BIGBINARY NULL: 0

ZERO: 255

>=255: 255

<255: 255
BIGVARBINARY NULL: 0

ZERO: 1

>=255: 255

<255:rzeczywisty Len
NCHAR NULL: 0

ZERO: 255

>=255: 255

<255: 255
NVARCHAR NULL: 0

ZERO: 1

>=255: 255

<255:rzeczywisty Len
NTEKST NULL: -1

ZERO: -1

>=255: -1

<255: -1

* actual len = Długość ciągu znaków wielobajtowych (cch)

Remarks

Każdy parametr zdalnej procedury przechowywanej ma rzeczywistą i maksymalną długość danych. Dla standardowych typów danych o stałej długości, które nie dopuszczają wartości zerowych, rzeczywista i maksymalna długość są takie same. Dla typów danych o zmiennej długości długość może się różnić. Na przykład parametr zadeklarowany jako varchar(30) może zawierać dane o długości zaledwie 10 bajtów. Rzeczywista długość parametru wynosi 10, a maksymalna to 30. Funkcja srv_paramlen otrzymuje rzeczywistą długość danych w bajtach zdalnej procedury przechowywanej. Aby uzyskać maksymalną długość danych parametru, użyj srv_parammaxlen.

Gdy wywołane jest zdalne wywołanie procedury przechowywanej z parametrami, parametry te mogą być przekazywane zarówno według nazwy, jak i pozycji (bez nazwy). Jeśli zdalne wywołanie procedury przechowywanej zostanie wykonane z pewnymi parametrami przekazywanymi nazwą, a innymi według pozycji, występuje błąd. Obsługa SRV_RPC jest nadal wywoływana, ale wygląda na to, że nie ma żadnych parametrów i srv_rpcparams zwraca 0.

Ważna

Powinieneś dokładnie przejrzeć kod źródłowy rozszerzonych procedur przechowywanych i przetestować skompilowane pliki DLL przed instalacją ich na serwerze produkcyjnym. Informacje o przeglądzie i testowaniu bezpieczeństwa znajdziesz na tej stronie internetowej Microsoft.