srv_paramlen (擴充預存程序 API)

重要事項重要事項

未來的 Microsoft 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 系統資料類型,此函數會傳回下列値。

新的資料類型

輸入資料長度

BITN

NULL:1

ZERO:1

>=255:無

<255:無

BIGVARCHAR

NULL:0

ZERO:1

>=255: 255

<255:實際 len

BIGCHAR

NULL:0

ZERO:255

>=255: 255

<255: 255

BIGBINARY

NULL:0

ZERO:255

>=255: 255

<255: 255

BIGVARBINARY

NULL:0

ZERO:1

>=255: 255

<255:實際 len

NCHAR

NULL:0

ZERO:255

>=255: 255

<255: 255

NVARCHAR

NULL:0

ZERO:1

>=255: 255

<255:實際 len

NTEXT

NULL:-1

ZERO:-1

>=255: -1

<255: -1

* 實際 len = 多位元組字元字串的長度 (cch)

備註

每個遠端預存程序參數都具有實際和最大的資料長度。對於不允許 null 值的標準固定長度資料類型,實際和最大的長度是相同的。對於可變長度資料類型,長度則可以有所不同。例如,宣告為 varchar(30) 的參數可能擁有只有 10 個位元組長的資料。參數的實際長度為 10,而其最大長度為 30。srv_paramlen 函數會取得遠端預存程序的實際資料長度 (以位元組為單位)。若要取得參數的最大資料長度,請使用 srv_parammaxlen

當遠端預存程序呼叫是利用參數來進行時,這些參數可以依名稱或位置 (未命名) 傳遞。如果遠端預存程序呼叫是藉由一些依名稱傳遞的參數和一些依位置傳遞的參數來進行時,就會發生錯誤。雖然仍會呼叫 SRV_RPC 處理常式,但是看起來好像沒有參數,而且 srv_rpcparams 會傳回 0。

安全性注意事項安全性注意事項

您應該徹底檢閱擴充預存程序的原始程式碼,也應該先測試編譯過的 DLL,才能將它們安裝在實際執行伺服器上。如需有關安全性檢閱和測試的詳細資訊,請參閱此 Microsoft 網站