srv_parammaxlen(扩展存储过程 API)

适用于:SQL Server

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 CLR 集成。

返回远程存储过程调用参数的最大数据长度。 此函数已被 srv_paraminfo 函数取代

语法

  
int srv_parammaxlen (  
SRV_PROC *  
srvproc  
,  
int  
n   
);  

参数

srvproc
指向作为特定客户端连接句柄(在这里为接收远程存储过程调用的句柄)的 SRV_PROC 结构的指针。 该结构包含扩展存储过程 API 库用于管理应用程序和客户端之间的通信和数据的信息。

n
指示参数的编号。 第一个参数是 1。

返回

参数数据的最大长度(以字节为单位)。 如果没有第 n 个参数或没有任何远程存储过程,则返回 -1

如果参数是以下 Microsoft SQL Server 数据类型之一,则此函数将返回以下值。

新数据类型 输入数据长度
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 之前,对这些 DLL 进行测试。 有关安全检查和测试的信息,请访问此 Microsoft 网站

另请参阅

srv_paraminfo(扩展存储过程 API)
srv_rpcparams(扩展存储过程 API)