仅有有限数量的 C 数据类型可作为主机变量。而且,某些主机变量类型没有对应的 C 类型。
sqlca.h 头文件中定义的宏可用于声明以下类型的主机变量:NCHAR、VARCHAR、NVARCHAR、LONGVARCHAR、LONGNVARCHAR、BINARY、LONGBINARY、DECIMAL、DT_FIXCHAR、DT_NFIXCHAR、DATETIME (SQLDATETIME)、BIT、BIGINT 或 UNSIGNED BIGINT。它们的使用方法如下所示:
EXEC SQL BEGIN DECLARE SECTION; DECL_NCHAR v_nchar[10]; DECL_VARCHAR( 10 ) v_varchar; DECL_NVARCHAR( 10 ) v_nvarchar; DECL_LONGVARCHAR( 32768 ) v_longvarchar; DECL_LONGNVARCHAR( 32768 ) v_longnvarchar; DECL_BINARY( 4000 ) v_binary; DECL_LONGBINARY( 128000 ) v_longbinary; DECL_DECIMAL( 30, 6 ) v_decimal; DECL_FIXCHAR( 10 ) v_fixchar; DECL_NFIXCHAR( 10 ) v_nfixchar; DECL_DATETIME v_datetime; DECL_BIT v_bit; DECL_BIGINT v_bigint; DECL_UNSIGNED_BIGINT v_ubigint; EXEC SQL END DECLARE SECTION; |
预处理器能够识别嵌入式 SQL 声明部分中的这些宏,并可将变量视为相应的类型。建议不要使用 DECIMAL(DT_DECIMAL、DECL_DECIMAL)类型,因为十进制数值的格式为专有格式。
下表列出了允许用于主机变量的 C 变量类型及其对应的嵌入式 SQL 接口数据类型。
C 数据类型 | 嵌入式 SQL 接口类型 | 说明 | ||
---|---|---|---|---|
|
DT_SMALLINT | 16 位有符号整数。 | ||
|
DT_UNSSMALLINT | 16 位无符号整数。 | ||
|
DT_INT | 32 位有符号整数。 | ||
|
DT_UNSINT | 32 位无符号整数。 | ||
|
DT_BIGINT | 64 位有符号整数。 | ||
|
DT_UNSBIGINT | 64 位无符号整数。 | ||
|
DT_FLOAT | 4 字节单精度浮点值。 | ||
|
DT_DOUBLE | 8 字节双精度浮点值。 | ||
|
DT_STRING | 在 CHAR 字符集中以空值终止的字符串。如果数据库是使用填补空白的字符串进行的初始化,则该字符串便是用空白填补的。此变量占有 n-1 个字符加上空终止符。 | ||
|
DT_STRING | 在 CHAR 字符集中以空值终止的字符串。此变量指向一个可保存最多 32766 个字节加上空终止符的区域。 | ||
|
DT_NSTRING | 在 NCHAR 字符集中以空值终止的字符串。如果数据库是使用填补空白的字符串进行的初始化,则该字符串便是用空白填补的。此变量占有 n-1 个字符加上空终止符。 | ||
|
DT_NSTRING | 在 NCHAR 字符集中以空值终止的字符串。此变量指向一个可保存最多 32766 个字节加上空终止符的区域。 | ||
|
DT_VARCHAR | 在 CHAR 字符集中具有双字节长度字段的变长字符串。不是以空值终止的或以空白填补的。n 的最大值为 32765(字节)。 | ||
|
DT_NVARCHAR | 在 NCHAR 字符集中具有双字节长度字段的变长字符串。不是以空值终止的或以空白填补的。n 的最大值为 32765(字节)。 | ||
|
DT_LONGVARCHAR | 在 CHAR 字符集中具有三个 4 字节长度字段的变长长字符串。不是以空值终止的或以空白填补的。 | ||
|
DT_LONGNVARCHAR | 在 NCHAR 字符集中具有三个 4 字节长度字段的变长长字符串。不是以空值终止的或以空白填补的。 | ||
|
DT_BINARY | 具有长度为 2 个字节的字段的变长二进制数据。n 的最大值为 32765(字节)。 | ||
|
DT_LONGBINARY | 具有三个长度为 4 个字节的字段的长型变长二进制数据。 | ||
|
DT_FIXCHAR | 在 CHAR 字符集中固定长度的字符串。是填补空白的但不是以空值终止的。n 的最大值为 32767(字节)。 | ||
|
DT_NFIXCHAR | 在 NCHAR 字符集中固定长度的字符串。是填补空白的但不是以空值终止的。n 的最大值为 32767(字节)。 | ||
|
DT_TIMESTAMP_STRUCT | SQLDATETIME 结构 |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |