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.
Замечания
Привязка сеанса расширенной хранимой процедуры к сеансу вызывающего ее клиента для совместного использования пространства блокировки транзакций
Расширенная хранимая процедура вызывает функцию svr_getbindtoken , чтобы получить маркер привязки для текущей транзакции в сеансе. Маркер возвращается в параметре bindtoken.
Расширенная хранимая процедура открывает новый сеанс на том же сервере. В сеансе расширенная хранимая процедура использует маркер привязки с sp_bindsession для привязки нового сеанса к той же транзакции. Расширенная хранимая процедура может создать несколько сеансов и привязать их к одной транзакции.
Связанный сеанс освобождается, когда расширенная хранимая процедура возвращается или когда sp_bindsession вызывается с пустой строкой.
Примечание Только один связанный сеанс может получить одновременный доступ к общему соединению. Если один сеанс в настоящий момент выполняет инструкцию на сервере или ожидает результаты с сервера, никакой другой сеанс, совместно использующий это связанное соединение, не может получить доступ к серверу, пока текущий сеанс не завершит выполнение инструкции. Если сеанс пытается получить доступ к соединению, пока сервер занят, ему возвращается ошибка, указывающая, что соединение используется, и попытку следует повторить позже.
Примечание по безопасности |
---|
Необходимо тщательно просмотреть исходный код расширенных хранимых процедур и проверить скомпилированные DLL-библиотеки перед их установкой на рабочий сервер. Сведения о проверке безопасности см. на следующем веб-узле Майкрософт. |