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 Embedded SQL » SQLDA (SQL descriptor area) » SQLDA の sqllen フィールドの値

 

値の記述

次の表は、データベースのさまざまな型に対して 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 関数を参照してください。