srv_getbindtoken (API für erweiterte gespeicherte Prozeduren)
Wichtig |
---|
Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie so bald wie möglich das Ändern von Anwendungen, in denen es zurzeit verwendet wird. 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, sodass die neue Sitzung denselben Transaktionssperrbereich zusammen mit der Clientsitzung nutzen kann, 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.
Rückgabewerte
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
Die erweiterte gespeicherte Prozedur ruft svr_getbindtoken auf, um das Bindungstoken für die aktuelle Transaktion in der Sitzung abzurufen. Das Token wird im gegebenen bindtoken-Parameter zurückgegeben.
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.
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.
Sicherheitshinweis |
---|
Sie sollten den Quellcode der erweiterten gespeicherten Prozeduren gründlich überprüfen. Außerdem sollten Sie die kompilierten DLLs vor der Installation auf einem Produktionsserver testen. Weitere Informationen zum Überprüfen und Testen der Sicherheit finden Sie auf dieser Microsoft-Website. |