分享方式:


srv_getbindtoken (擴充預存程式 API)

適用於:SQL Server

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CLR 整合。

取得目前用戶端會話中叫用擴充預存程式之交易的系結令牌。

然後 ,擴充預存程式可以使用sp_bindsession ,將它針對相同伺服器建立的任何新會話系結至現有的交易,讓新的會話可以與叫用擴充預存程式的用戶端會話共用相同的交易鎖定空間。

語法

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

引數

srvproc
這是特定用戶端連接句柄之SRV_PROC結構的指標。 結構包含擴充預存程式 API 連結庫用來管理應用程式與客戶端之間的通訊和數據的所有資訊。

bindtoken
這是將複製系結令牌之緩衝區的指標。 系結令牌會以 Null 終止的字串表示。 您指定的緩衝區長度應該至少為 255 個字節。

傳回

SUCCEED 或FAIL。

備註

將擴充預存程式會話系結至呼叫它的用戶端會話,以便共用相同的交易鎖定空間

  1. 擴充預存程式會呼叫 srv_getbindtoken ,以取得會話中目前交易的系結令牌。 令牌會在指定的 bindtoken 參數中傳回。

  2. 擴充預存程式會針對同一部伺服器開啟新的會話。 在該會話內,擴充預存程式會使用系結令牌搭配 sp_bindsession ,將新的會話系結至相同的交易。 擴充預存程式可以建立多個會話,並將所有會話系結至相同的交易。

  3. 當外部預存程式傳回或以空字串呼叫sp_bindsession,系結會話是未繫結的。

    注意

    一次只能有一個系結會話可以存取共享連線。 如果某個會話目前正在伺服器執行語句,或有伺服器擱置的結果,則共用相同系結連線的其他會話將無法存取伺服器,直到目前會話完成執行目前的語句為止。 如果會話嘗試在伺服器忙碌時取得連線的存取權,則會將錯誤傳回至衝突的會話,指出連線正在使用中,且會話應稍後重試。

重要

您應該徹底檢閱擴充預存程式的原始程式碼,而且您應該先測試已編譯的 DLL,再於實際執行伺服器上安裝它們。 如需安全性檢閱和測試的相關信息,請參閱此 Microsoft網站

另請參閱

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