srv_getbindtoken (API rozszerzonych procedur przechowywanych)

Dotyczy:SQL Server

Important

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.

Pobiera token wiązania transakcji w bieżącej sesji klienckiej, który wywołuje rozszerzoną procedurę przechowywaną.

Rozszerzona procedura przechowywana może następnie użyć sp_bindsession do powiązania każdej nowej sesji utworzonej przeciwko temu samemu serwerowi z istniejącą transakcją, tak aby nowa sesja mogła dzielić tę samą przestrzeń blokady transakcji z sesją klienta, która wywołała rozszerzoną procedurę przechowywaną.

Syntax

  
int srv_getbindtoken (  
SRV_PROC*  
srvproc  
,  
char*  
bindtoken  
);  

Arguments

srvproc
Jest wskaźnikiem do struktury SRV_PROC, która jest uchwytem dla konkretnego połączenia klienta. Struktura zawiera wszystkie informacje, które biblioteka API Extended Stored Procedure wykorzystuje do zarządzania komunikacją i danymi między aplikacją a klientem.

bindtoken
Jest wskaźnikiem do bufora, do którego zostanie skopiowany token bind. Token wiązania jest reprezentowany jako ciąg zakończony zerem. Określony przez Ciebie bufor powinien mieć co najmniej 255 bajtów długości.

Zwroty

POWODZENIE lub NIEPOWODZENIE.

Remarks

Powiązanie rozszerzonej sesji procedury przechowywanej z sesją klienta, która ją wywołała, tak aby dzieliły tę samą przestrzeń blokady transakcji

  1. Wywołania procedur rozszerzonych przechowywanych srv_getbindtoken w celu uzyskania tokena wiązania dla bieżącej transakcji w sesji. Token jest zwracany w podanym parametrze bindtoken .

  2. Rozszerzona procedura przechowywana otwiera nowe sesje (sesje) na tym samym serwerze. W trakcie tej sesji rozszerzona procedura przechowywana wykorzystuje token bind with sp_bindsession do powiązania nowej sesji z tą samą transakcją. Rozszerzona procedura przechowywana może tworzyć wiele sesji i wiązać wszystkie sesje z tą samą transakcją.

  3. Sesja związana jest niewiązana, gdy zewnętrzna procedura przechowywana zwraca lub gdy sp_bindsession wywołuje z pustym ciągiem znaków.

    Note

    Tylko jedna powiązana sesja w danym momencie może mieć dostęp do wspólnego połączenia. Jeśli jedna sesja obecnie wykonuje polecenie na serwerze lub oczekują na niego wyniki, żadna inna sesja korzystająca z tego samego połączenia nie uzyska dostępu do serwera, dopóki bieżąca sesja nie zakończy wykonania bieżącego polecenia. Jeśli sesja próbuje uzyskać dostęp do połączenia podczas zajętego serwera, do sesji konfliktowej zwracany jest błąd wskazujący, że połączenie jest używane i sesja powinna spróbować ponownie później.

Important

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.