Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.10.2 SQLColumns,SQLColumnsW

〈この項の構成〉

(1) 機能

列情報の一覧を結果セットとして返します。

(2) 形式

(3) 引数

StatementHandle

ステートメントハンドルを指定します。

CatalogName

指定内容をカタログ名として使用します。

指定内容は無効になりますが指定自体は必要なため,この関数を使用する際は,空の文字列("")またはNULLを指定します。

NameLength1

*CatalogNameの長さ※1,またはSQL_NTSを指定します。

指定内容は無効になりますが指定自体は必要なため,この関数を使用する際は,0を指定します。

SchemaName

スキーマ名のパターン文字列※2を指定します。NULLを指定した場合は,パターン文字列として'%'が指定されたときと同じ動作となります。

NameLength2

*SchemaNameの長さ※1,またはSQL_NTSを指定します。

0を指定した場合は,SchemaNameにパターン文字列として'%'が指定されたときと同じ動作となります。

TableName

テーブル名のパターン文字列※2を指定します。NULLを指定した場合は,パターン文字列として'%'が指定されたときと同じ動作となります。

NameLength3

*TableNameの長さ※1,またはSQL_NTSを指定します。

0を指定した場合は,TableNameにパターン文字列として'%'が指定されたときと同じ動作となります。

ColumnName

列名のパターン文字列※2を指定します。NULLを指定した場合は,パターン文字列として'%'が指定されたときと同じ動作となります。

NameLength4

*ColumnNameの長さ※1,またはSQL_NTSを指定します。

0を指定した場合は,ColumnNameにパターン文字列として'%'が指定されたときと同じ動作となります。

注※1

長さの単位は,SQLColumnsの場合はバイト長,SQLColumnsWの場合は文字数となります。

注※2

パターン文字列中に指定できる特殊文字を次の表に示します。

表16‒12 パターン文字列中に指定できる特殊文字

指定できる特殊文字

意味

_(下線)

任意の1文字です。

%

0文字以上の任意の長さの文字列です。

\

エスケープ文字です。パターン文字列中に指定したエスケープ文字の直後の特殊文字を通常の文字として扱います。

\は,Shift-JISの0x5c(UTF-16LEの0x5c00)で示される文字です。UTF-8の場合は,\(バックスラッシュ)で表示される文字を指定してください。

(4) 戻り値

SQL_SUCCESSSQL_SUCCESS_WITH_INFOSQL_ERROR,またはSQL_INVALID_HANDLEが返されます。

実行後に返却される結果セットの形式を次の表に示します。

表16‒13 返却される結果セットの形式

列番号

列名

列の意味

1

Varchar

TABLE_CAT

常にナル値を返します。

2

Varchar

TABLE_SCHEM

スキーマ名

3

Varchar

TABLE_NAME

表名

4

Varchar

COLUMN_NAME

列名

5

smallint

DATA_TYPE

ODBC SQLデータ型識別子

6

Varchar

TYPE_NAME

型名

7

Integer

COLUMN_SIZE

列サイズ

8

Integer

BUFFER_LENGTH

列のデータ定義長

9

Smallint

DECIMAL_DIGITS

小数点以下の桁数

10

Smallint

NUM_PREC_RADIX

基数

  • 真数値:10

  • 数値以外:ナル値

11

Smallint

NULLABLE

この型にナル値を使用できるかどうかを返します。

  • SQL_NO_NULLS:ナル値を使用できないおそれがあります。

  • SQL_NULLABLE:ナル値を使用できます。

12

Varchar

REMARKS

常にナル値を返します。

13

Varchar

COLUMN_DEF

列の既定値を返します。

  • 返却された値が,アポストロフィ(')で囲まれている場合は,列の既定値が文字列であることを意味しています。

  • 列の既定値にNULLが指定されている場合は,アポストロフィ(')で囲まれていないNULLという文字列を返します。

  • 列の既定値が指定されていない場合は,ナル値を返します。

  • そのほかの返却値については,マニュアルHADB システム構築・運用ガイドSQL_COLUMNSの内容DEFAULT_VALUE列を参照してください。

14

Smallint

SQL_DATA_TYPE

ODBC SQLデータ型識別子

15

Smallint

SQL_DATETIME_SUB

ODBC SQLデータ型識別子のサブコード

16

Integer

CHAR_OCTET_LENGTH

文字データ型についての列の最大バイト長

17

Integer

ORDINAL_POSITION

列番号

1から始まります。

18

Varchar

IS_NULLABLE

この型にナル値が使用できるかどうかを返します。

  • YES:ナル値を使用できる可能性があります。

  • NO:ナル値を使用できません。

(5) SQLSTATE

この関数では次のSQLSTATEを返します。

SQLSTATE

説明

備考

返却

01000

一般警告

×

08S01

通信リンク失敗

×

24000

無効なカーソル状態

×

40001

直列化の失敗

×

40003

ステートメントの完了が不明

×

5C002

文字コードの変換エラー

変換できない文字コードを検出しました。

5C041

データ型未サポートエラー

ドライバは指定されたデータ型をサポートしていません。

×

HY000

一般エラー

×

HY001

メモリ割り当てエラー

HY008

動作がキャンセルされた

×

HY009

NULLポインタの不正使用

×

HY010

関数シーケンスエラー

HY013

メモリ管理エラー

×

HY090

無効な文字列長または無効なバッファ長

名前の長さを格納する引数のどれかの値が,対応する名前の最大長を超えました。

HY117

接続がサスペンド中

×

HYC00

オプション機能は実装されていない

×

HYT00

タイムアウト終了

×

HYT01

接続タイムアウト終了

×

IM001

ドライバはこの関数をサポートしていない

×

IM017

非同期ポーリングが不正

×

IM018

非同期実行が未完了

×

(凡例)

○:HADB ODBCドライバが返すことがあるSQLSTATEです。

×:HADB ODBCドライバが返さないSQLSTATEです。

−:なし。

(6) 注意事項

この関数を実行したHADBユーザが持っている権限によって,取得できる列情報が変わります。権限と取得できる列情報については,マニュアルHADB システム構築・運用ガイドHADBユーザが参照できるディクショナリ表とシステム表の範囲を参照してください。