srv_getbindtoken (API für erweiterte gespeicherte Prozeduren)

Gilt für:SQL Server

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen die CLR-Integration.

Enthält ein Bindungstoken der Transaktion in der aktuellen Clientsitzung, mit dem die erweiterte gespeicherte Prozedur aufgerufen wird.

Die erweiterte gespeicherte Prozedur kann dann mithilfe von sp_bindsession eine neue Sitzung binden, die sie mit demselben Server für die vorhandene Transaktion erstellt. So kann die neue Sitzung denselben Transaktionssperrbereich zusammen mit der Clientsitzung nutzen, die die erweiterte gespeicherte Prozedur aufgerufen hat.

Syntax

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

Argumente

srvproc
Ein Zeiger auf die SRV_PROC-Struktur, die das Handle für eine bestimmte Clientverbindung ist. Die Struktur enthält alle Kontrollinformationen, mit der die API-Bibliothek für erweiterte gespeicherte Prozeduren Kommunikationen und Daten zwischen der Anwendung und dem Client verwaltet.

bindtoken
Ein Zeiger auf einen Puffer, in dem das Bindungstoken kopiert wird. Das Bindungstoken wird als eine Zeichenfolge dargestellt, die auf NULL endet. Der Puffer, den Sie angeben, muss mindestens 255 Bytes lang sein.

Gibt zurück

SUCCEED oder FAIL.

Hinweise

So binden Sie eine Sitzung der erweiterten gespeicherten Prozedur an die Clientsitzung, die die Prozedur aufgerufen hat, sodass beide Sitzungen denselben Transaktionssperrbereich nutzen

  1. Die erweiterte gespeicherte Prozedur ruft srv_getbindtoken auf, um das Bindungstoken für die aktuelle Transaktion in der Sitzung abzurufen. Das Token wird im gegebenen bindtoken-Parameter zurückgegeben.

  2. Die erweiterte gespeicherte Prozedur öffnet auf demselben Server neue Sitzungen. Innerhalb dieser Sitzung verwendet die erweiterte gespeicherte Prozedur das Bindungstoken mit sp_bindsession, um die neue Sitzung an dieselbe Transaktion zu binden. Die erweiterte gespeicherte Prozedur kann mehrere Sitzungen erstellen und alle Sitzungen an dieselbe Transaktion binden.

  3. Die Bindung einer gebundenen Sitzung wird aufgehoben, wenn die externe gespeicherte Prozedur eine leere Zeichenfolge zurückgibt oder wenn sp_bindsession mit einer leeren Zeichenfolge aufgerufen wird.

    Hinweis

    Es kann immer jeweils nur eine gebundene Sitzung Zugriff auf eine gemeinsam genutzte Verbindung haben. Wenn eine Sitzung derzeit eine Anweisung auf dem Server ausführt oder auf Ergebnisse vom Server wartet, können andere Sitzungen, die dieselbe gebundene Verbindung nutzen, erst dann auf den Server zugreifen, wenn die aktuelle Sitzung die aktuelle Anweisung ausgeführt hat. Wenn durch eine andere Sitzung auf die Verbindung zugegriffen wird, solange der Server ausgelastet ist, wird an die den Konflikt verursachende Sitzung die Fehlermeldung zurückgegeben, dass die Verbindung verwendet wird und der Zugriffsversuch der Sitzung später wiederholt werden kann.

Wichtig

Sie sollten den Quellcode der erweiterten gespeicherten Prozeduren sorgfältig prüfen, und Sie sollten die kompilierten DLL-Dateien testen, bevor Sie sie auf einem Produktionsserver installieren. Weitere Informationen zum Überprüfen und Testen der Sicherheit finden Sie auf dieser Microsoft-Website.

Weitere Informationen

sp_bindsession (Transact-SQL)
sp_getbindtoken (Transact-SQL)