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 之前,对这些 DLL 进行测试。有关安全检查和测试的信息,请参阅该 Microsoft 网站