srv_paramlen (擴充預存程式 API)
適用於:SQL Server
重要
SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CLR 整合。
傳回遠端預存過程調用參數的數據長度。 此函式已由 srv_paraminfo 函式取代。
語法
int srv_paramlen (
SRV_PROC *
srvproc
,
int
n
);
引數
srvproc
這是特定用戶端連接句柄之SRV_PROC結構的指標(在此案例中,接收遠端預存過程調用的句柄)。 結構包含擴充預存程式 API 連結庫用來管理應用程式和客戶端之間的通訊和資料的資訊。
n
表示 參數的數目。 第一個參數是 1。
傳回
參數數據的實際長度,以位元組為單位。 如果沒有第 n 個參數,或沒有遠端預存程式,則會傳回 -1。 如果第 n 個參數為 NULL,則會傳回 0。
如果 參數是下列其中一個Microsoft SQL Server 2005 (9.x) 系統數據類型,則此函式會傳回下列值。
新的數據類型 | 輸入數據長度 |
---|---|
BITN | NULL: 1 零: 1 >=255: N/A <255: N/A |
BIGVARCHAR | NULL: 0 零: 1 >=255: 255 <255: 實際 len |
BIGCHAR | NULL: 0 零: 255 >=255: 255 <255: 255 |
BIGBINARY | NULL: 0 零: 255 >=255: 255 <255: 255 |
BIGVARBINARY | NULL: 0 零: 1 >=255: 255 <255: 實際 len |
NCHAR | NULL: 0 零: 255 >=255: 255 <255: 255 |
NVARCHAR | NULL: 0 零: 1 >=255: 255 <255: 實際 len |
NTEXT | NULL: -1 零: -1 >=255: -1 <255: -1 |
* 實際 len = 多位元組字元字串的長度 (cch)
備註
每個遠端預存程式參數都有實際且最大數據長度。 對於不允許 Null 值的標準固定長度數據類型,實際長度和最大長度都相同。 針對可變長度數據類型,長度可能會有所不同。 例如,宣告為 varchar(30) 的參數可以有長度只有 10 個字節的數據。 參數的實際長度為 10,其最大長度為 30。 srv_paramlen函式會取得遠程預存程式的實際數據長度,以位元組為單位。 若要取得參數的數據長度上限,請使用 srv_parammaxlen。
使用參數進行遠端預存過程調用時,參數可以依名稱或位置傳遞(未命名)。 如果遠端預存程式呼叫是以名稱傳遞的一些參數和一些依位置傳遞的參數進行,就會發生錯誤。 仍會呼叫SRV_RPC處理程式,但看起來好像沒有參數, srv_rpcparams 傳回 0。
重要
您應該徹底檢閱擴充預存程式的原始程式碼,而且您應該先測試已編譯的 DLL,再於實際執行伺服器上安裝它們。 如需安全性檢閱和測試的相關信息,請參閱此 Microsoft網站。