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

SQL Anywhere 12.0.0 (中文) » 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_FIXCHAR2 从数据库字符集转换为客户端的 CHAR 字符集时,为最大数据扩展的 n 倍。如果长度超过 32767 字节,则返回的嵌入式 SQL 类型是长度为 32767 字节的 DT_LONGVARCHAR。
CHAR(n CHAR) DT_FIXCHAR2 客户端的 CHAR 字符集中最大字符长度的 n 倍如果长度超过 32767 字节,则返回的嵌入式 SQL 类型是长度为 32767 字节的 DT_LONGVARCHAR。
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 倍如果长度超过 32767 字节,则返回的嵌入式 SQL 类型是长度为 32767 字节的 DT_LONGNVARCHAR。
NVARCHAR(n) DT_NVARCHAR1 客户端的 NCHAR 字符集中最大字符长度的 n 倍如果长度超过 32767 字节,则返回的嵌入式 SQL 类型是长度为 32767 字节的 DT_LONGNVARCHAR。
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_VARCHAR2 从数据库字符集转换为客户端的 CHAR 字符集时,为最大数据扩展的 n 倍。如果长度超过 32767 字节,则返回的嵌入式 SQL 类型是长度为 32767 字节的 DT_LONGVARCHAR。
VARCHAR(n CHAR) DT_VARCHAR(2) 客户端的 CHAR 字符集中最大字符长度的 n 倍如果长度超过 32767,则返回的嵌入式 SQL 类型是长度为 32767 的 DT_LONGVARCHAR。

1 如果客户端 NCHAR 字符集中的最大字节长度超过 32767 字节,为 NCHAR 和 NVARCHAR 返回的类型可能是 DT_LONGNVARCHAR。关于执行 DESCRIBE 时返回的结果的示例,请参见NCHAR 数据类型NVARCHAR 数据类型

在嵌入式 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 函数

2 如果客户端 CHAR 字符集中的最大字节长度超过 32767 字节,返回的类型可能是 DT_LONGVARCHAR。关于执行 DESCRIBE 时返回的结果的示例,请参见CHAR 数据类型VARCHAR 数据类型