Compartilhar via


srv_getbindtoken (API de Procedimento Armazenado Estendido)

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e modifique, assim que possível, 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 usar sp_bindsession para associar qualquer sessão nova que ele cria com relação ao mesmo servidor na transação existente para que a sessão nova 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.

Retorna

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

  1. O procedimento armazenado estendido chama svr_getbindtoken para obter o token de associação para a transação atual na sessão. O token é retornado no determinado parâmetro bindtoken.

  2. 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 sessão nova à mesma transação. O procedimento armazenado estendido pode criar várias sessões e associar todas as sessões à mesma transação.

  3. Uma sessão associada é desassociada quando o procedimento armazenado externo é retornado ou quando sp_bindsession é chamado com uma cadeia de caracteres vazia.

    ObservaçãoObservaçã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.

Observação sobre segurançaObservação sobre segurança

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.

Consulte também

Referência

sp_bindsession (Transact-SQL)

sp_getbindtoken (Transact-SQL)