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。

如果参数为以下 MicrosoftSQL Server 2005 系统数据类型之一,则此函数返回以下值:

新数据类型

输入数据长度

BITN

NULL:1

零:1

>=255:不适用

<255:不适用

BIGVARCHAR

NULL:0

零:1

>=255:255

<255:实际 len

BIGCHAR

NULL:0

零:255

>=255:255

<255:255

BIGBINARY

NULL:0

零:255

>=255:255

<255:255

BIGVARBINARY

NULL:0

零:1

>=255:255

<255:实际 len

NCHAR

NULL:0

零:255

>=255:255

<255:255

NVARCHAR

NULL:0

零:1

>=255:255

<255:实际 len

NTEXT

NULL:-1

零:-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 网站