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。
如果参数为以下 MicrosoftSQL 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 网站。 |