srv_paramdata(扩展存储过程 API)
适用于:SQL Server
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 CLR 集成。
返回远程存储过程调用参数的值。 此函数已被 srv_paraminfo 函数取代。
语法
void * srv_paramdata (
SRV_PROC *
srvproc
,
int
n
);
参数
srvproc
指向作为特定客户端连接句柄(在这里为接收远程存储过程调用的句柄)的 SRV_PROC 结构的指针。 该结构包含扩展存储过程库用于管理应用程序和客户端之间的通信和数据的信息。
n
表示参数的编号。 第一个参数的编号为 1。
返回
一个指向参数值的指针。 如果第 n 个参数为 NULL,则没有第 n 个参数,或者没有任何远程存储过程,并返回 NULL。 如果参数值为字符串,则不能以 Null 值结束。 使用 srv_paramlen 确定字符串的长度。
如果参数是MICROSOFT SQL Server 数据类型之一,则此函数将返回以下值。 指针数据包括数据类型的指针是否为有效 (VP)、NULL 或不适用 (N/A),以及指向的数据内容。
新数据类型 | 输入数据长度 |
---|---|
BITN | NULL:VP、NULL ZERO:VP、NULL >=255: N/A <255:N/A |
BIGVARCHAR | NULL:NULL、N/A ZERO:VP、NULL >=255: VP,255 个字符 <255: VP、实际数据 |
BIGCHAR | NULL:NULL、N/A ZERO:VP、255 个空格 >=255: VP,255 个字符 <255: VP、实际数据 + 填充(最多 255) |
BIGBINARY | NULL:NULL、N/A ZERO:VP、255 0x00 >=255: VP,255 字节 <255: VP、实际数据 + 填充(最多 255) |
BIGVARBINARY | NULL:NULL、N/A ZERO:VP、0x00 >=255: VP,255 字节 <255: VP、实际数据 |
NCHAR | NULL:NULL、N/A ZERO:VP、255 个空格 >=255: VP,255 个字符 <255: VP、实际数据 + 填充(最多 255) |
NVARCHAR | NULL:NULL、N/A ZERO:VP、NULL >=255: VP,255 个字符 <255: VP、实际数据 |
NTEXT | NULL:N/A ZERO:N/A >=255: N/A <255:N/A |
* 数据不以 null 结尾;对于数据 >255 个字符的截断,不会发出任何警告。
注解
如果知道参数名称,则可以使用 srv_paramnumber 获取参数编号。 要确定参数是否为 NULL,请使用 srv_paramlen。
使用参数执行远程存储过程调用时,可以通过名称或位置(未命名)来传递参数。 如果使用部分按名称传递,部分按位置传递的参数调用远程存储过程,则会发生错误。 如果出现错误,仍然会调用 SRV_RPC 处理程序,但是它看起来没有参数并且 srv_rpcparams 返回 0。
重要
应全面检查扩展存储过程的源代码,并在生产服务器中安装编译的 DLL 之前,对这些 DLL 进行测试。 有关安全检查和测试的信息,请访问此 Microsoft 网站。