srv_paramset (擴充預存程式 API)
適用於:SQL Server
重要
SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CLR 整合。
設定遠端預存過程調用 return 參數的值。 此函式已由 srv_paramsetoutput 函式取代。
語法
int srv_paramset (
SRV_PROC *
srvproc
,
int
n
,
void *
data
,
int
len
);
引數
srvproc
這是特定用戶端連接句柄之SRV_PROC結構的指標(在此案例中,接收遠端預存過程調用的句柄)。 結構包含擴充預存程式 API 連結庫用來管理應用程式和客戶端之間的通訊和資料的資訊。
n
表示要設定的參數數目。 第一個參數是 1。
data
這是要當做遠端預存程式傳回參數傳送回用戶端之數據值的指標。
len
指定要傳回之數據的實際長度。 如果參數的數據類型是常數長度,且不允許 Null 值(例如 srvbit 或 srvint1), 則會忽略 len 。
傳回
如果成功設定參數值,則為 SUCCEED;否則為FAIL。 當沒有目前的遠端預存程式、沒有第 n個遠端預存程式參數、當參數不是傳回參數,以及當 len 自變數不合法時,就會傳回 FAIL。
如果 len為 0,則會傳回 NULL。 將 len 設定為 0 是將 NULL 傳回用戶端的唯一方法。
如果 參數是 Microsoft SQL Server 2005 (9.x) 資料類型之一,則此函式會傳回下列值。
新的數據類型 | 傳回數據長度 |
---|---|
BITN | NULL:len = 0,數據 = IG,RET = 0 零: N/A >=255: N/A <255: N/A |
BIGVARCHAR | NULL:len = 0,數據 = IG,RET = 1 ZERO:len = IG、data = IG、RET = 0 >=255: len = max8k, data = valid, RET = 0 <255:len = <8k,數據 = 有效,RET = 1 |
BIGCHAR | NULL:len = 0,數據 = IG,RET = 1 ZERO:len = IG、data = IG、RET = 0 >=255: len = max8k, data = valid, RET = 0 <255:len = <8k,數據 = 有效,RET = 1 |
BIGBINARY | NULL:len = 0,數據 = IG,RET = 1 ZERO:len = IG、data = IG、RET = 0 >=255: len = max8k, data = valid, RET = 0 <255:len = <8k,數據 = 有效,RET = 1 |
BIGVARBINARY | NULL:len = 0,數據 = IG,RET = 1 ZERO:len = IG、data = IG、RET = 0 >=255: len = max8k, data = valid, RET = 0 <255:len = <8k,數據 = 有效,RET = 1 |
NCHAR | NULL:len = 0,數據 = IG,RET = 1 ZERO:len = IG、data = IG、RET = 0 >=255: len = max8k, data = valid, RET = 0 <255:len = <8k,數據 = 有效,RET = 1 |
NVARCHAR | NULL:len = 0,數據 = IG,RET = 1 ZERO:len = IG、data = IG、RET = 0 >=255: len = max8k, data = valid, RET = 0 <255:len = <8k,數據 = 有效,RET = 1 |
NTEXT | NULL:len = IG,數據 = IG,RET = 0 ZERO:len = IG、data = IG、RET = 0 >=255: len = IG, data = IG, RET = 0 <255:len = IG,數據 = IG,RET = 0 |
RET = 傳回值 srv_paramset | |
IG = 將會忽略值 | |
valid = 任何有效的數據指標 |
備註
參數包含透過遠端預存程式在用戶端與應用程式之間傳遞的數據。 用戶端可以將特定參數指定為傳回參數。 這些傳回參數可以包含 Open Data Services 伺服器應用程式傳回給用戶端的值。 使用傳回參數類似於以傳址方式傳遞參數。
您無法為未叫用為傳回參數的參數設定傳回值。 您可以使用 srv_paramstatus 來判斷如何叫用 參數。
此函式會設定參數的傳回值,但實際上不會將傳回值傳送給用戶端。 所有傳回參數,不論其傳回值是否已設定為 srv_paramset,都會在呼叫 srv_senddone狀態旗標SRV_DONE_FINAL設定時,自動傳送至用戶端。
使用參數進行遠端預存過程調用時,參數可以依名稱或位置傳遞(未命名)。 如果遠端預存程式呼叫是以名稱傳遞的一些參數和一些依位置傳遞的參數進行,就會發生錯誤。 仍會呼叫SRV_RPC處理程式,但看起來好像沒有參數, srv_rpcparams 傳回 0。
重要
您應該徹底檢閱擴充預存程式的原始程式碼,而且您應該先測試已編譯的 DLL,再於實際執行伺服器上安裝它們。 如需安全性檢閱和測試的相關信息,請參閱此 Microsoft網站。