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


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

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

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

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

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

Синтаксис

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

Arguments

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

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

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

SUCCEED или FAIL.

Замечания

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

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

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

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

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

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

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

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

См. также

Справочник