srv_getbindtoken (API delle stored procedure estese)

Si applica a: SQL Server

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Usare invece l'integrazione CLR.

Ottiene un token di associazione della transazione nella sessione client corrente che richiama la stored procedure estesa.

La stored procedure estesa può quindi usare sp_bindsession per associare qualsiasi nuova sessione creata sullo stesso server alla transazione esistente in modo che la nuova sessione possa condividere lo stesso spazio di blocco della transazione con la sessione client che ha richiamato la stored procedure estesa.

Sintassi

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

Argomenti

srvproc
Puntatore alla struttura SRV_PROC che rappresenta l'handle di una determinata connessione client. La struttura contiene tutte le informazioni utilizzate dalla libreria dell'API della stored procedure estesa per gestire le comunicazioni e i dati tra l'applicazione e il client.

bindtoken
Puntatore a un buffer in cui verrà copiato il token di associazione. Il token di associazione viene rappresentato come stringa con terminazioni Null. Il buffer specificato deve essere lungo almeno 255 byte.

Valori restituiti

SUCCEED o FAIL.

Osservazioni:

Per associare una sessione della stored procedure estesa alla sessione client che l'ha chiamata perché condividano lo stesso spazio di blocco della transazione

  1. La stored procedure estesa chiama srv_getbindtoken per ottenere il token di associazione per la transazione corrente nella sessione. Il token viene restituito nel parametro bindtoken specificato.

  2. La stored procedure estesa apre nuove sessioni sullo stesso server. Nella sessione la stored procedure estesa usa il token di associazione con sp_bindsession per associare la nuova sessione alla stessa transazione. La stored procedure estesa può creare più sessioni e può associare tutte le sessioni alla stessa transazione.

  3. L'associazione di una sessione viene annullata quando viene restituita la stored procedure esterna o quando sp_bindsession viene chiamata con una stringa vuota.

    Nota

    A una connessione condivisa può accedere solo una sessione associata per volta. Se una sessione esegue un'istruzione nel server o è in attesa di risultati dal server, nessun'altra sessione che condivide la stessa connessione associata può accedere al server fino a quando la sessione corrente non completa l'esecuzione dell'istruzione corrente. Se una sessione tenta di accedere alla connessione mentre il server è occupato, nella sessione in conflitto viene restituito un errore che indica che la connessione è in uso e che la sessione dovrà eseguire un nuovo tentativo in seguito.

Importante

È necessario esaminare con attenzione il codice sorgente delle stored procedure estese e testare le DLL compilate prima di installarle in un server di produzione. Per informazioni sui test e sull'analisi della sicurezza, visitare questo sito Web Microsoft.

Vedi anche

sp_bindsession (Transact-SQL)
sp_getbindtoken (Transact-SQL)