MS SQL SERVER扩展存储过程程序员参考

  • 格式:pdf
  • 大小:265.67 KB
  • 文档页数:26

SRVBIGVARBINARY varbinary
长度可变的 binary 数据类型,长度为 0 至 8000 个字节。
SRVBIGVARCHAR varchar
长度可变的 character 数据类型,长度为 0 至 8000 个字节。
SRVBINARY
binary
binary 数据类型。
SRVBIT
扩展存储过程程序员参考
XP Programmer’s Reference
一、数据类型
数据类型
SQL Server 数据类型
SRVBIGBINARY
binary
说明
binary 数据类型,长度为 0 至 8000 个字节。
SRVBIGCHAR
char
character 数据类型,长度为 0 至 8000 个字节。
返回值: 如果数据类型转换成功,则返回转换后的数据的长度(单位为字节)。当 srv_convert 遇到它不支持的转换请求 时,它将调用开发人员提供的错误处理程序(如果有),设置全局错误号,并返回 -1。
共 26 页,第 4 页
XP Programmer’s Reference
备注: srv_willconvert 函数决定是否允许进行特定转换。 转换为近似的数字数据类型 SRVFLT4 或 SRVFLT8 可能会造成一定的精度损失。从近似的数字数据类型 SRVFLT4 或 SRVFLT8 转换为 SRVCHAR 或 SRVTEXT 也可能造成一定的精度损失。 转换为 SRVFLTx、SRVINTx、SRVMONEY、SRVMONEY4、SRVDECIMAL 或 SRVNUMERIC 时,如果数字 大于目标的最大值,则可能导致上溢,如果数字小于目标的最小值,则可能导致下溢。如果在转换为 SRVCHAR 或 SRVTEXT 时发生上溢,则所得值的第一个字符将包含一个星号 (*),以指示出错。 将 SRVCHAR 转换为 SRVBINARY 时,srv_convert 将 SRVCHAR 解释为十六进制,无论字符串是否包含前 导 0 都是如此。将 SRVBINARY 转换为 SRVCHAR 时,srv_convert 将创建一个不带前导 0 的十六进制字符 串。在所有其他情况下,以 SRVBINARY 数据类型为目标类型或源类型的转换都是直接逐位复制。 在某些情况下,将数据类型转换为自身可能比较有用。例如,将 SRVCHAR 转换为 destlen 为 -1 的 SRVCHAR 将向字符串添加一个 Null 终止符。 有关数据类型和扩展存储过程 API 数据类型转换的说明,请参阅数据类型(扩展存储过程 API)。 srv_convert 函数可能会因以下几种原因失败: 请求的转换不可用。 转换导致目标变量出现截断、上溢或精度损失。 将字符串转换为数字数据类型时出现语法错误。
image 数据类型。
SRVINT1
tinyint
1 个字节的 tinyint 数据类型。
SRVIN 数据类型。
SRVINT4
int
4 个字节的 int 数据类型。
SRVINTN
tinyint | smallint | int null tinyint、smallint 或 int 数据类型,允许为 Null 值。
长度可变的 Unicode character 数据类型。
SRVTEXT
text
text 数据类型。
SRVVARBINARY
varbinary
长度可变的 binary 数据类型。
SRVVARCHAR
varchar
长度可变的 character 数据类型。
共 26 页,第 2 页
二、API
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Bit
bit 数据类型。
SRVBITN
bit null
bit 数据类型,允许为 Null 值。
SRVCHAR
char
character 数据类型。
SRVDATETIME
datetime
8 个字节的 datetime 数据类型。
SRVDATETIM4
smalldatetime
4 个字节的 smalldatetime 数据类型。
须以 Null 值结束。 desttype 指定目标行列的数据类型。这是发送到客户端的数据类型。即使数据为 NULL,也必须指定数据类型。
有关详细信息,请参阅数据类型(扩展存储过程 API)。 destlen 指定要发送到客户端的数据的长度(单位为字节)。对于不允许使用 Null 值的固定长度数据类型,将忽
3、srv_describe
定义行中特定列的列名以及源数据类型和目标数据类型。 语法: int srv_describe (SRV_PROC *srvproc,int colnumber,DBCHAR *column_name,int namelen,DBINT desttype,DBINT
destlen,DBINT srctype,DBINT srclen ,void *srcdata);
1、srv_alloc
动态分配内存。 语法: srv_alloc(DBINT size);
参数: size 指定要分配的字节数
返回值: 指向新分配的空间的指针。如果无法分配 size 个字节,则返回 Null 指针。
备注: srv_alloc 函数等同于 Microsoft Windows API GlobalAlloc 函数。可以在扩展存储过程 API 应用程序中使用普
存储过程名称
srv_alloc srv_convert srv_describe srv_getbindtoken srv_got_attention srv_impersonate_client srv_message_handler srv_paramdata srv_paraminfo srv_paramlen srv_parammaxlen srv_paramname srv_paramnumber srv_paramset srv_paramsetoutput srv_paramstatus srv_paramtype srv_pfield srv_revert_to_self srv_pfieldex srv_rpcdb srv_rpcname srv_rpcnumber srv_rpcoptions srv_rpcowner srv_rpcparams srv_senddone srv_sendmsg srv_sendrow srv_setcoldata srv_setcollen srv_setutype srv_willconvert srv_wsendmsg
SRVDATETIMN
datetime null
smalldatetime 或 datetime 数据类型,允许为 Null 值。
SRVDECIMAL
decimal
decimal 数据类型。
SRVDECIMALN
decimal null
decimal 数据类型,允许为 Null 值。
SRVFLT4
real
Unicode character 数据类型。
SRVNTEXT
ntext
Unicode text 数据类型。
SRVNUMERIC
numeric
numeric 数据类型。
SRVNUMERICN
numeric null
numeric 数据类型,允许为 Null 值。
SRVNVARCHAR
nvarchar
参数: srvproc 指向作为特定客户端连接(在本例中为发送相应行的客户端)句柄的 SRV_PROC 结构的指针。该结构
包含扩展存储过程 API 库用于管理应用程序和客户端之间的通信和数据的所有信息。 colnumber 当前不支持。必须按顺序描述列。所有列都必须在调用 srv_sendrow 之前进行描述。 column_name 指定数据所属列的名称。该参数可以为 NULL,因为列不是必须要有名称。 namelen 指定 column_name 的长度(以字节为单位)。如果 namelen 为 SRV_NULLTERM,则 column_name 必
4 个字节的 real 数据类型。
SRVFLT8
float
8 个字节的 float 数据类型。
SRVFLTN
real | float null
real 或 float 数据类型,允许为 Null 值。
共 26 页,第 1 页
XP Programmer’s Reference
SRVIMAGE
image
参数: srvproc 指向作为特定客户端连接句柄的 SRV_PROC 结构的指针。该结构包含扩展存储过程 API 用于管理应
用程序和客户端之间的通信和数据的所有控制信息。如果提供了 srvproc 句柄,则在出错时会将其传递 给扩展存储过程 API 错误处理程序函数。 srctype 指定要转换的数据的数据类型。该参数可以为任意一种扩展存储过程 API 数据类型。 src 指向要转换的数据的指针。该参数可以为任意一种扩展存储过程 API 数据类型。 srclen 指定要转换的数据的长度(单位为字节)。如果 srclen 为 0,srv_convert 将向目标变量中放入一个 Null 值。除非它为 0,否则对于固定长度数据类型,会忽略该参数,在这种情况下会假定源数据为 NULL。 对于 SRVCHAR 数据类型的数据,长度为 -1 表示字符串以 Null 值结束。 desttype 指示要将源转换为何种数据类型。该参数可以为任意一种扩展存储过程 API 数据类型。 dest 指向接收转换后的数据的目标变量的指针。如果该指针为 NULL,srv_convert 将调用用户提供的错误 处理程序(如果有的话),并返回 -1。 如 果 desttype 为 SRVDECIMAL 或 SRVNUMERIC , 则 dest 参 数 必 须 为 指 向 DBNUMERIC 或 DBDECIMAL 结构的指针,并且此结构的精度和小数位数字段必须已设置为所需的值。您可以使用 DEFAULTPRECISION 指定一个默认精度,使用 DEFAULTSCALE 指定一个默认小数位数。 destlen 指定目标变量的长度(单位为字节)。对于固定长度数据类型,则会忽略该参数。对于 SRVCHAR 类型 的目标变量,值 destlen 必须为目标缓冲区空间的总长度。SRVCHAR 或 SRVBINARY 类型的目标变量 的长度为 -1 时,表示有足够的可用空间。对于 srvchar 类型的目标变量,长度为 -1 将使字符串以 Null 值结束。