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

Ustawia wartość parametru zwrotu zdalnej procedury przechowywanej. Funkcja ta została zastąpiona przez funkcję srv_paramsetoutput .

Syntax

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

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 liczbę parametrów do ustawienia. Pierwszy parametr to 1.

data
Jest wskaźnikiem do wartości danych, która ma być wysyłana z powrotem do klienta jako parametr powrotu procedury zdalnej przechowywanej.

len
Określa rzeczywistą długość danych, które mają zostać zwrócone. Jeśli typ danych parametru ma stałą długość i nie dopuszcza wartości zerowych (na przykład srvbit lub srvint1), len jest ignorowany.

Zwroty

SUKCES, jeśli wartość parametru została pomyślnie ustawiona; w przeciwnym razie NIEZDAJ. FAIL zwraca się, gdy nie ma aktualnej zdalnej procedury przechowywanej, gdy nie ma ntparametrów zdalnej procedury przechowywanej, gdy parametr nie jest parametrem return oraz gdy argument len nie jest legalny.

Jeśli lenjest równe 0, zwraca NULL. Ustawienie len na 0 to jedyny sposób, aby zwrócić NULL do klienta.

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

Nowe typy danych Długość danych zwrotnych
BITN NULL:len = 0, data = IG, RET = 0

ZERO: Nie ma

>=255: N/A

<255: N/A
BIGVARCHAR NULL:len = 0, data = IG, RET = 1

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

>=255:len = max8k, dane = ważne, RET = 0

<255:len = <8k, dane = ważne, RET = 1
BIGCHAR NULL:len = 0, data = IG, RET = 1

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

>=255:len = max8k, dane = ważne, RET = 0

<255:len = <8k, dane = ważne, RET = 1
BIGBINARY NULL:len = 0, data = IG, RET = 1

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

>=255:len = max8k, dane = ważne, RET = 0

<255:len = <8k, dane = ważne, RET = 1
BIGVARBINARY NULL:len = 0, data = IG, RET = 1

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

>=255:len = max8k, dane = ważne, RET = 0

<255:len = <8k, dane = ważne, RET = 1
NCHAR NULL:len = 0, data = IG, RET = 1

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

>=255:len = max8k, dane = ważne, RET = 0

<255:len = <8k, dane = ważne, RET = 1
NVARCHAR NULL:len = 0, data = IG, RET = 1

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

>=255:len = max8k, dane = ważne, RET = 0

<255:len = <8k, dane = ważne, RET = 1
NTEKST 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 = Wartość zwrotu srv_paramset
IG = Wartość zostanie zignorowana
valid = Dowolny poprawny wskaźnik do danych

Remarks

Parametry zawierają dane przekazywane między klientami a aplikacją za pomocą zdalnych procedur przechowywanych. Klient może określić określone parametry jako parametry zwrotne. Te parametry zwrotu mogą zawierać wartości, które aplikacja serwera Open Data Services przekazuje klientowi. Użycie parametrów zwrotu jest analogiczne do przekazywania parametrów przez odwołanie.

Nie można ustawić wartości zwrotnej parametru, który nie został wywołany, jako parametru zwrotu. Możesz użyć srv_paramstatus , aby określić, jak parametr został wywołany.

Funkcja ta ustala wartość zwrotną parametru, ale faktycznie nie wysyła wartości zwrotnej do klienta. Wszystkie parametry zwrotu, niezależnie od tego, czy zostały ustawione z srv_paramset , czy nie, są automatycznie wysyłane do klienta, gdy srv_senddone zostanie wywołany z SRV_DONE_FINAL ustawioną flagą statusu.

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 nadal jest wywoływana, ale wygląda na to, że nie było żadnych parametrów, a 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.