Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere 嵌入式 SQL » SQL 描述符区域 (SQLDA) » SQLDA sqllen 字段值

 

说明值

下表为各种数据库类型指明由 DESCRIBE 语句返回的 sqllen 和 sqltype 结构成员的值(SELECT LIST 和 BIND VARIABLE DESCRIBE 语句)。在用户定义的数据库数据类型的情况下,则对基类型进行说明。

您的程序可以使用从 DESCRIBE 返回的类型和长度,也可以使用另一种类型。数据库服务器在任意两种类型之间执行类型转换。由 sqldata 字段指向的内存必须对应于 sqltype 和 sqllen 字段。嵌入式 SQL 类型通过对 sqltype 和 DT_TYPES 进行按位“与”操作 (sqltype & DT_TYPES) 来获得。

有关嵌入式 SQL 数据类型的信息,请参见嵌入式 SQL 数据类型

数据库字段类型 返回的嵌入式 SQL 类型 说明时返回的长度(以字节为单位)
BIGINT DT_BIGINT 8
BINARY(n) DT_BINARY n
BIT DT_BIT 1
CHAR(n) DT_FIXCHAR n
DATE DT_DATE 最长的带格式字符串的长度
DECIMAL(p,s) DT_DECIMAL SQLDA 中长度字段的高字节设置为 p,低字节设置为 s
DOUBLE DT_DOUBLE 8
FLOAT DT_FLOAT 4
INT DT_INT 4
LONG BINARY DT_LONGBINARY 32767
LONG NVARCHAR DT_LONGNVARCHAR1 32767
LONG VARCHAR DT_LONGVARCHAR 32767
NCHAR(n) DT_NFIXCHAR1 客户端的 NCHAR 字符集中最大字符长度的 n 倍
NVARCHAR(n) DT_NVARCHAR1 客户端的 NCHAR 字符集中最大字符长度的 n 倍
REAL DT_FLOAT 4
SMALLINT DT_SMALLINT 2
TIME DT_TIME 最长的带格式字符串的长度
TIMESTAMP DT_TIMESTAMP 最长的带格式字符串的长度
TINYINT DT_TINYINT 1
UNSIGNED BIGINT DT_UNSBIGINT 8
UNSIGNED INT DT_UNSINT 4
UNSIGNED SMALLINT DT_UNSSMALLINT 2
VARCHAR(n) DT_VARCHAR n

1 在嵌入式 SQL 中,缺省情况下 NCHAR、NVARCHAR 和 LONG NVARCHAR 被分别描述为 DT_FIXCHAR、DT_VARCHAR 和 DT_LONGVARCHAR。如果调用了 db_change_nchar_charset 函数,则这些类型被分别描述为 DT_NFIXCHAR、DT_NVARCHAR 和 DT_LONGNVARCHAR。请参见db_change_nchar_charset 函数