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 ZERO:1 >=255: N/A <255:N/A |
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 之前,对这些 DLL 进行测试。 有关安全检查和测试的信息,请访问此 Microsoft 网站。