次の表は、データベースのさまざまな型に対して DESCRIBE 文 (SELECT LIST 文と BIND VARIABLE 文の両方) が返す sqllen と sqltype 構造体のメンバの値を示します。ユーザ定義のデータベース・データ型の場合、ベースタイプが記述されます。
プログラムでは DESCRIBE の返す型と長さを使用できます。別の型も使用できます。データベース・サーバはどの型でも型変換を行います。sqldata フィールドの指すメモリは sqltype と sqllen フィールドに合致させてください。Embedded SQL の型は、sqltype でビット処理 AND と DT_TYPES を指定して (sqltype & DT_TYPES) 取得します。
Embedded SQL データ型については、Embedded SQL のデータ型を参照してください。
データベースのフィールドの型 | 返される Embedded SQL の型 | describe で返される長さ (バイト単位) |
---|---|---|
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 Embedded 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 |