srv_getbindtoken (API de Procedimento Armazenado Estendido)
Aplica-se a: SQL Server
Importante
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use a integração CLR em vez disso.
Obtém um token de associação da transação na sessão de cliente atual que invoca o procedimento armazenado estendido.
O procedimento armazenado estendido pode então usar sp_bindsession para associar qualquer sessão nova criada por ele no mesmo servidor à transação existente, de modo que a nova sessão possa compartilhar o mesmo espaço para bloqueio de transação com a sessão de cliente que invocou o procedimento armazenado estendido.
Sintaxe
int srv_getbindtoken (
SRV_PROC*
srvproc
,
char*
bindtoken
);
Argumentos
srvproc
É um ponteiro para a estrutura SRV_PROC que atua como identificador de uma conexão de cliente específica. A estrutura contém todas as informações que a biblioteca de APIs de Procedimento Armazenado Estendido usa para gerenciar as comunicações e os dados entre o aplicativo e o cliente.
bindtoken
É um ponteiro para um buffer em que o token de associação será copiado. O token de associação é representado como uma cadeia de caracteres terminada por caractere nulo. O buffer que você especifica deve ter pelo menos 255 bytes.
Devoluções
SUCCEED ou FAIL.
Comentários
Para associar uma sessão de procedimento armazenado estendido à sessão de cliente que a chamou para que compartilhem o mesmo espaço para bloqueio de transação
O procedimento armazenado estendido chama srv_getbindtoken para obter o token de associação para a transação atual na sessão. O token é retornado no parâmetro bindtoken especificado.
O procedimento armazenado estendido abre sessão(ões) nova(s) com relação ao mesmo servidor. Nessa sessão, o procedimento armazenado estendido usa o token de associação com sp_bindsession para associar a nova sessão à mesma transação. O procedimento armazenado estendido pode criar várias sessões e associar todas as sessões à mesma transação.
Uma sessão associada é desassociada quando o procedimento armazenado externo é retornado ou quando sp_bindsession é chamado com uma cadeia de caracteres vazia.
Observação
Somente uma sessão associada por vez pode ter acesso a uma conexão compartilhada. Se uma sessão no momento estiver executando uma instrução no servidor ou tiver resultados pendentes no servidor, nenhuma outra sessão que compartilha a mesma conexão associada poderá obter acesso ao servidor enquanto a sessão atual não tiver concluído a execução da instrução atual. Se uma sessão tentar obter acesso à conexão enquanto o servidor está ocupado, será retornado um erro para a sessão conflitante indicando que a conexão está sendo usada e que a sessão deve tentar novamente mais tarde.
Importante
Você deve examinar totalmente o código-fonte de procedimentos armazenados estendidos e deve testar as DLLs compiladas antes de instalá-las em um servidor de produção. Para obter informações sobre revisão e testes de segurança, consulte este site da Microsoft.
Confira também
sp_bindsession (Transact-SQL)
sp_getbindtoken (Transact-SQL)