Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.17 SQLGetDescField,SQLGetDescFieldW,SQLSetDescFieldおよびSQLSetDescFieldWに指定できる属性

SQLGetDescFieldSQLGetDescFieldWSQLSetDescFieldおよびSQLSetDescFieldWに指定できる属性を次の表に示します。

表16‒25 ディスクリプタのヘッダフィールドの値

項番

属性(Attribute)

属性の説明(規約)

サポートの状況

データ型

1

SQL_DESC_ALLOC_TYPE

そのディスクリプタが自動的に割り当てられたものか,明示的に割り当てられたものかを示します。

SQL_DESC_ALLOC_AUTO

ドライバが自動的に割り当てたディスクリプタです。

SQL_DESC_ALLOC_USER

アプリケーションが明示的に割り当てたディスクリプタです。

次の値をサポートします。

  • SQL_DESC_ALLOC_AUTO

  • SQL_DESC_ALLOC_USER

SQLSMALLINT

2

SQL_DESC_ARRAY_SIZE

ARD

行セットの行数(SQLFetchで返される行数)です。

APD

各パラメタの値の個数です。

次の値をサポートします。

  • 1

SQLULEN

3

SQL_DESC_ARRAY_STATUS_PTR

IRD

SQLFetch実行後のステータスの値が格納される行ステータス配列へのポインタです。

IPD

SQLExecuteSQLExecDirectまたはSQLExecDirectW実行後,パラメタ値の各セットに対するステータス情報を格納するパラメタステータス配列へのポインタです。

ARD

SQLSetPosの処理に対して行の無視を指定するため,アプリケーションが値を設定できる操作配列へのポインタです。

APD

SQLExecuteSQLExecDirectまたはSQLExecDirectW実行時,パラメタセットの無視を指定するため,アプリケーションが値を設定できるパラメタ操作配列へのポインタです。

NULL

ドライバはステータスの値やステータス情報の格納,または行やパラメタセットの無視をしません。

次の値をサポートします。

  • NULL

SQLUSMALLINT *

4

SQL_DESC_BIND_OFFSET_PTR

APが指定するバインドオフセットです。

フェッチ時に,遅延フィールドに加算します。

NULL

加算しません。

次の値をサポートします。

  • NULL

SQLLEN *

5

SQL_DESC_BIND_TYPE

列またはパラメタのバインドの方向を指定します。

ARD

SQLFetch実行時のバインドの方向です。

APD

動的パラメタに対するバインドの方向です。

SQL_BIND_BY_COLUMN

列方向バインドを指定します。

次の値をサポートします。

  • SQL_BIND_BY_COLUMN

SQLINTEGER

6

SQL_DESC_COUNT

データを格納するレコード番号の最大値です。

指定できる値は1以上です。

次の値をサポートします。

  • 0以上の整数値

SQLSMALLINT

7

SQL_DESC_ROWS_PROCESSED_PTR

IRD

SQLFetch実行後,フェッチした行数を格納するバッファへのポインタです。

IPD

SQLExecuteSQLExecDirectまたはSQLExecDirectW実行時に処理されたパラメタセットの数を格納するバッファへのポインタです。

NULL

ドライバはフェッチした行数やパラメタセットの数をバッファに格納しません。

次の値をサポートします。

  • NULL

SQLULEN *

表16‒26 ディスクリプタのレコードフィールドの値

項番

属性(Attribute)

属性の説明(規約)

サポートの状況

データ型

1

SQL_DESC_AUTO_UNIQUE_VALUE

列が自動的にインクリメントされるかどうかを示します。

SQL_FALSE

列が自動的にインクリメントされません。

次の値をサポートします。

  • SQL_FALSE

SQLINTEGER

2

SQL_DESC_BASE_COLUMN_NAME

結果セット列に対応するベース列名です。

次の値をサポートします。

  • 列名

  • "EXPnnnn_NO_NAME"nnnn0001から4000の符号なし整数)

    検索項目列が列指定ではありません。

  • SQLCHAR *

  • SQLWCHAR *

3

SQL_DESC_BASE_TABLE_NAME

結果セット列に対応するベーステーブル名です。

次の値をサポートします。

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

4

SQL_DESC_CASE_SENSITIVE

照合または比較のときに,列またはパラメタの大文字と小文字を区別するかどうかを示します。

SQL_TRUE

照合・比較時に,列・パラメタの大文字と小文字を区別します。

SQL_FALSE

次のどちらかを示します。

・照合・比較時に,列・パラメタの大文字と小文字を区別しません。

列が文字以外です。

次の値をサポートします。

  • SQL_TRUE

  • SQL_FALSE

SQLINTEGER

5

SQL_DESC_CATALOG_NAME

列を格納するベーステーブルに対するカタログ名です。

次の値をサポートします。

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

6

SQL_DESC_CONCISE_TYPE

すべてのデータ型に対する簡潔データ型です。

次の値をサポートします。

  • 当ドライバでサポートしているデータ型

SQLSMALLINT

7

SQL_DESC_DATA_PTR

パラメタの値(APD)または列の値(ARD)を格納するバッファへのポインタです。

次の値をサポートします。

  • NULL

  • バッファへのポインタ

SQLPOINTER

8

SQL_DESC_DATETIME_INTERVAL_CODE

SQL_DESC_TYPEフィールドの値がSQL_DATETIMEまたはSQL_INTERVALの場合,特定の日付時刻または間隔のデータ型に対するサブコードです。

上記以外の場合,このフィールドは0です。

次の値をサポートします。

  • 特定の日付時刻または間隔のデータ型に対するサブコード

  • 0

SQLSMALLINT

9

SQL_DESC_DATETIME_INTERVAL_PRECISION

SQL_DESC_TYPEフィールドがSQL_INTERVALの場合,間隔先行精度です。

上記以外の場合,このフィールドは0です。

次の値をサポートします。

  • 0

SQLINTEGER

10

SQL_DESC_DISPLAY_SIZE

列からデータを表示するときに必要な最大文字数です。

データ型の種類によって,次の値をサポートします。

  • SQL_CHARSQL_VARCHAR

    定義長(バイト数)

  • SQL_BIGINTSQL_INTEGER

    桁数

  • SQL_DECIMAL

    精度(全体の桁数)+2

  • SQL_TYPE_DATESQL_DATE

    10

  • SQL_TYPE_TIMESQL_TIME

    8+(p1

  • SQL_TYPE_TIMESTAMPSQL_TIMESTAMP

    19+(p1

  • SQL_DOUBLE

    24

  • SQL_BINARYSQL_VARBINARY

    定義長(バイト数)×2

SQLLEN

11

SQL_DESC_FIXED_PREC_SCALE

列が真数値型かどうかを示します。

SQL_FALSE

列が真数値型以外で,固定精度とスケールが設定されています。

次の値をサポートします。

  • SQL_FALSE

SQLSMALLINT

12

SQL_DESC_INDICATOR_PTR

列またはパラメタの値がNULLかどうかを示します。

次の値をサポートします。

  • NULL

  • バッファへのポインタ

SQLLEN *

13

SQL_DESC_LABEL

列のラベルまたはタイトルです。

次の値をサポートします。

  • 列名

  • "EXPnnnn_NO_NAME"nnnn0001から4000の符号なし整数)

    検索項目列が列指定ではありません。

  • SQLCHAR *

  • SQLWCHAR *

14

SQL_DESC_LENGTH

文字列またはバイナリデータ型の最大長または実際の文字長です。

次の値をサポートします。

  • 各データ型の定義長(バイト長)

SQLULEN

15

SQL_DESC_LITERAL_PREFIX

データ型のリテラルに対するプレフィックスとしてドライバが認識する1文字以上の文字です。

次の値をサポートします。

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

16

SQL_DESC_LITERAL_SUFFIX

データ型のリテラルに対するサフィックスとしてドライバが認識する1文字以上の文字です。

次の値をサポートします。

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

17

SQL_DESC_LOCAL_TYPE_NAME

普通のデータ型名とは異なるデータ型のローカル名です。

次の値をサポートします。

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

18

SQL_DESC_NAME

列のエイリアスです。列のエイリアスが適用されない場合は,列名です。

次の値をサポートします。

  • 列名

  • "EXPnnnn_NO_NAME"nnnn0001から4000の符号なし整数)

    検索項目列が列指定ではありません。

  • SQLCHAR *

  • SQLWCHAR *

19

SQL_DESC_NULLABLE

列にNULLを指定できるかどうかを示します。

SQL_NULLABLE

列にナル値を指定できます。

SQL_NO_NULLS

列にナル値を指定できません。

次の値をサポートします。

  • SQL_NULLABLE

  • SQL_NO_NULLS

SQLSMALLINT

20

SQL_DESC_NUM_PREC_RADIX

SQL_DESC_TYPEフィールドのデータ型が概数値データ型か,真数値データ型かを示します。

10

データ型が真数値データ型です。

0

データ型が数値以外です。

次の値をサポートします。

  • 10

  • 0

SQLINTEGER

21

SQL_DESC_OCTET_LENGTH

文字列またはバイナリデータ型のバイト長です。

次の値をサポートします。

  • 各データ型の定義長(バイト長)

SQLLEN

22

SQL_DESC_OCTET_LENGTH_PTR

動的引数(パラメタディスクリプタの場合)またはバインドされた列の値(行ディスクリプタの場合)の長さの合計(バイト長)を格納する変数を指します。

次の値をサポートします。

  • NULL

  • バッファへのポインタ

SQLLEN *

23

SQL_DESC_PARAMETER_TYPE

パラメタの種類(入力・出力・入出力)を示します。

SQL_PARAM_INPUT

入力パラメタです。

SQL_PARAM_INPUT_OUTPUT

入出力パラメタです。

次の値をサポートします。

  • SQL_PARAM_INPUT

  • SQL_PARAM_INPUT_OUTPUT

    SQL_PARAM_INPUTに置き換えます。

SQLSMALLINT

24

SQL_DESC_PRECISION

真数値型の場合は桁数,概数値型の場合は仮数(バイナリ精度)のビット数です。

データ型の種類によって,次の値をサポートします。

  • SQL_BIGINTSQL_INTEGER

    桁数

  • SQL_DECIMALSQL_NUMERIC

    精度(全体の桁数)

  • SQL_TYPE_TIMESQL_TYPE_TIMESTAMPSQL_TIMESQL_TIMESTAMP

    小数秒の桁数

  • SQL_DOUBLESQL_FLOAT

    15

  • そのほかのデータ型

    0

SQLSMALLINT

25

SQL_DESC_SCALE

10進および数値のデータ型

スケールの定義値です。

次の値をサポートします。

  • スケールの定義値

  • 0

    数値以外のデータ型です。

SQLSMALLINT

26

SQL_DESC_SCHEMA_NAME

列を格納するベーステーブルのスキーマ名です。

次の値をサポートします。

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

27

SQL_DESC_SEARCHABLE

WHERE句で列を使用できるかどうかを示します。

SQL_PRED_SEARCHABLE

WHERE句の任意の比較演算子で列を使用できます。

次の値をサポートします。

  • SQL_PRED_SEARCHABLE

SQLSMALLINT

28

SQL_DESC_TABLE_NAME

列を格納するベーステーブル名です。

次の値をサポートします。

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

29

SQL_DESC_TYPE

  • 日付時刻と間隔以外のデータ型

    簡潔SQLデータ型または簡潔Cデータ型です。

  • 日付時刻および間隔のデータ型

    冗長データ型(SQL_DATETIMEまたはSQL_INTERVAL)です。

次の値をサポートします。

  • 簡潔SQLデータ型

  • 簡潔Cデータ型

  • 冗長データ型

SQLSMALLINT

30

SQL_DESC_TYPE_NAME

データソースに依存するデータ型名です。

データ型が不明な場合,空の文字列が指定されます。

次の値をサポートします。

  • データソースに依存するデータ型名

  • 空の文字列

  • SQLCHAR *

  • SQLWCHAR *

31

SQL_DESC_UNNAMED

SQL_DESC_NAMEフィールドに列名または列のエイリアスが指定されたかどうかを示します。

SQL_NAMED

SQL_DESC_NAMEフィールドに列名または列のエイリアスが指定されました。

SQL_UNNAMED

SQL_DESC_NAMEフィールドに列名または列のエイリアスが指定されていません。

次の値をサポートします。

  • SQL_NAMED

  • SQL_UNNAMED

SQLSMALLINT

32

SQL_DESC_UNSIGNED

列のデータ型が符号付きか,符号なしかを示します。

SQL_TRUE

列のデータ型が符号なし,または数値以外です。

SQL_FALSE

列のデータ型が符号付きです。

次の値をサポートします。

  • SQL_TRUE

  • SQL_FALSE

SQLSMALLINT

33

SQL_DESC_UPDATABLE

結果セットの列の更新が可能かどうかを示します。

SQL_ATTR_READWRITE_UNKNOWN

結果セット列は更新可能かどうかわかりません。

次の値をサポートします。

  • SQL_ATTR_READWRITE_UNKNOWN

SQLSMALLINT

34

SQL_COLUMN_LENGTH

ODBC2.0で定義されているフィールドです。

データ型の種類によって,次の値をサポートします。

  • SQL_CHARSQL_VARCHARSQL_BINARYSQL_VARBINARY

    定義長(バイト数)

  • SQL_BIGINTSQL_INTEGER

    桁数

  • SQL_DECIMALSQL_NUMERIC

    精度(全体の桁数)+2

  • SQL_TYPE_DATE

    10

  • SQL_TYPE_TIMESQL_TIME

    8+(p1

  • SQL_TYPE_TIMESTAMPSQL_TIMESTAMP

    19+(p1

  • SQL_DOUBLESQL_FLOAT

    24

SQLLEN

35

SQL_COLUMN_PRECISION

ODBC2.0で定義されているフィールドです。

次の値をサポートします。

  • SQL_DESC_PRECISIONと同じ値

SQLSMALLINT

36

SQL_COLUMN_SCALE

ODBC2.0で定義されているフィールドです。

次の値をサポートします。

  • SQL_DESC_SCALEと同じ値

SQLSMALLINT

注※

pは最大12桁の小数秒精度を意味しています。

( )内は,小数秒がある場合に加算します。