下表为各种数据库类型指明由 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 函数。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |