srv_paramdata(扩展存储过程 API)

重要说明重要提示

后续版本的 Microsoft 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 网站