srv_parammaxlen (擴充預存程序 API)

重要事項重要事項

未來的 Microsoft SQL Server 版本將移除這項功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。請改用 CLR 整合。

傳回遠端預存程序呼叫參數的最大資料長度。此函數已被 srv_paraminfo 函數取代。

語法


int srv_parammaxlen (
SRV_PROC *
srvproc
,
int
n 
);

引數

  • srvproc
    這是指向 SRV_PROC 結構的指標,也是特定用戶端連接的控制代碼 (在這個狀況之下,是接收遠端預存程序呼叫的控制代碼)。擴充預存程序 API 程式庫會使用該結構所包含的資訊來管理應用程式與用戶端之間的通訊和資料。

  • n
    這指出參數的數目。第一個參數是 1。

傳回值

這是參數資料的最大長度 (以位元組為單位)。如果沒有第 n 個參數,或者沒有遠端預存程序,則傳回 -1。

如果參數是下列 Microsoft SQL Server 2005 資料類型的一種,則此函數會傳回下列値。

新的資料類型

輸入資料長度

BITN

NULL:1

ZERO:1

>=255:N/A

<255:N/A

BIGVARCHAR

NULL:255

ZERO:255

>=255: 255

<255: 255

BIGCHAR

NULL:255

ZERO:255

>=255: 255

<255: 255

BIGBINARY

NULL:255

ZERO:255

>=255: 255

<255: 255

BIGVARBINARY

NULL:255

ZERO:255

>=255: 255

<255: 255

NCHAR

NULL:255

ZERO:255

>=255: 255

<255: 255

NVARCHAR

NULL:255

ZERO:255

>=255: 255

<255: 255

NTEXT

NULL:-1

ZERO:-1

>=255: -1

<255: -1

備註

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

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

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

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