Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.10.10 SQLTables,SQLTablesW

〈この項の構成〉

(1) 機能

HADBサーバに格納されたテーブル名,スキーマ名およびテーブル種別の一覧を返します。

SQL文の結果セットの形式で出力します。

(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にパターン文字列として'%'が指定されたときと同じ動作になります。

TableType

一致する表種別を示す文字列を指すポインタを指定します。HADB ODBCドライバが表種別として認識する文字列は次のとおりです。

  • SYSTEM TABLE

  • TABLE

  • VIEW

指定をする際,任意で各文字列の両端をアポストロフィ( ' )で囲んでください。また,複数の表種別の結果を取得する場合は,指定値をコンマ( , )で区切ります。

(例)

  • ディクショナリ表およびシステム表を取得する場合

    SYSTEM TABLE」または「'SYSTEM TABLE'」と指定します。

  • 実表およびビュー表を取得する場合

    TABLE,VIEW」または「'TABLE','VIEW'」と指定します。

この引数にNULLポインタ,空の文字列(""),またはSQL_ALL_TABLE_TYPESを指定した場合,表種別として「'SYSTEM TABLE','TABLE','VIEW'」が指定されたと見なします。

また,HADB ODBCドライバが表種別として認識する文字列以外を指定した場合,HADB ODBCドライバが認識する文字列だけが有効となり,それ以外の指定値は無視されます。したがって,無効な文字列だけを指定した場合,NULLポインタ,空の文字列("")が指定されたときと同様に,「'SYSTEM TABLE','TABLE','VIEW'」が指定されたと見なします。

NameLength4

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

0を指定した場合,TableTypeに「'SYSTEM TABLE','TABLE','VIEW'」が指定されたと見なされます。

注※1

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

注※2

パターン文字列中に指定できる特殊文字については,「表16‒12 パターン文字列中に指定できる特殊文字」を参照してください。

(4) 戻り値

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

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

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

列番号

列名

列の意味

1

Varchar

TABLE_CAT

常にナル値を返します。

2

Varchar

TABLE_SCHEM

スキーマ名

3

Varchar

TABLE_NAME

表名

4

Varchar

TABLE_TYPE

表の種類

  • TABLE:実表

  • VIEW:ビュー表

  • SYSTEM TABLE:ディクショナリ表またはシステム表

5

Varchar

REMARKS

常にナル値を返します。

(5) SQLSTATE

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

SQLSTATE

説明

備考

返却

01000

一般警告

×

08S01

通信リンク失敗

×

24000

無効なカーソル状態

×

40001

直列化の失敗

×

40003

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

×

5C002

文字コードの変換エラー

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

5C041

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

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

×

HY000

一般エラー

×

HY001

メモリ割り当てエラー

HADB ODBCドライバは,関数の実行または完了をサポートするために必要なメモリを割り当てられません。

HY008

動作がキャンセルされた

×

HY009

NULLポインタの不正使用

×

HY010

関数シーケンスエラー

HY013

メモリ管理エラー

×

HY090

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

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

HYC00

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

×

HYT00

タイムアウト終了

×

HYT01

接続タイムアウト終了

×

IM001

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

×

(凡例)

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

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

−:なし。

(6) 注意事項

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