Поделиться через


srv_getbindtoken (API-интерфейс расширенных хранимых процедур)

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server этот компонент будет удален. Не используйте его при работе над новыми приложениями и как можно быстрее измените приложения, в которых он в настоящее время используется. Пользуйтесь вместо этого интеграцией со средой CLR.

Получает токен привязки транзакции в текущем сеансе клиента, который вызывает расширенную хранимую процедуру.

После этого расширенная хранимая процедура может использовать sp_bindsession для привязки любого созданного ей на том же сервере сеанса к существующей транзакции, чтобы новый сеанс мог совместно использовать одно пространство блокировки транзакций с клиентским сеансом, вызвавшим расширенную хранимую процедуру.

Синтаксис

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

Аргументы

  • srvproc
    Указатель на структуру SRV_PROC, который представляет собой дескриптор соединения с клиентом. В этой структуре содержатся все сведения, которые библиотека API-интерфейса расширенных хранимых процедур использует для управления обменом данными между приложением и клиентом.

  • bindtoken
    Указатель на буфер, в который будет скопирован токен привязки. Токен привязки представлен как строка, оканчивающаяся нулевым байтом. Указываемый буфер должен иметь длину не менее 255 байт.

Возвращаемое значение

SUCCEED или FAIL.

Замечания

Привязка сеанса расширенной хранимой процедуры к сеансу вызывающего ее клиента для совместного использования пространства блокировки транзакций

  1. Расширенная хранимая процедура вызывает функцию svr_getbindtoken , чтобы получить токен привязки для текущей транзакции в сеансе. Токен возвращается в параметре bindtoken.

  2. Расширенная хранимая процедура открывает новый сеанс на том же сервере. В этом сеансе расширенная хранимая процедура использует токен привязки в хранимой процедуре sp_bindsession для привязки нового сеанса к той же транзакции. Расширенная хранимая процедура может создать несколько сеансов и привязать их к одной транзакции.

  3. Связанный сеанс освобождается при возврате из расширенной хранимой процедуры, или когда sp_bindsession вызывается с пустой строкой.

    ПримечаниеПримечание

    Только один связанный сеанс может получить доступ к общему соединению в один момент времени. Если один сеанс в настоящий момент выполняет инструкцию на сервере или ожидает результаты с сервера, то никакой другой сеанс, совместно использующий это связанное соединение, не может получить доступ к серверу, пока текущий сеанс не завершит выполнение инструкции. Если сеанс пытается получить доступ к соединению, пока сервер занят, то для этого сеанса возвращается ошибка, указывающая, что соединение используется, и конфликтующему сеансу следует повторить попытку позже.

Примечание по безопасностиПримечание по безопасности

Необходимо тщательно просмотреть исходный код расширенных хранимых процедур и проверить скомпилированные DLL-библиотеки перед их установкой на рабочий сервер. Сведения о проверке безопасности см. на следующем веб-сайте Майкрософт.

См. также

Справочник

sp_bindsession (Transact-SQL)

sp_getbindtoken (Transact-SQL)