Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.10.1 SQLColumnPrivileges,SQLColumnPrivilegesW

〈この項の構成〉

(1) 機能

指定されたテーブルの列と関連づけられた特権の一覧を返します。SQLの結果セットの形式で出力します。

(2) 形式

(3) 引数

StatementHandle:

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

この関数を実行する前にSQLAllocHandleの*OutputHandlePtrで出力された値を指定します。

CatalogName:

テーブルに対するカタログ名を指定します。

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

NameLength1:

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

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

SchemaName:

テーブルのスキーマ名を指定します。パターン文字列※2を使用してスキーマ名を指定できます。

SchemaNameにNULLポインタまたは空の文字列("")だけを指定した場合,SchemaNameにパターン文字列'%'だけを指定したと見なされます。

NameLength2:

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

NameLength2に0を指定した場合,SchemaNameにパターン文字列'%'だけを指定したと見なされます。

TableName:

テーブル名を指定します。パターン文字列※2を使用してテーブル名を指定できます。

TableNameにNULLポインタまたは空の文字列("")だけを指定した場合,TableNameにパターン文字列'%'だけを指定したと見なされます。

NameLength3:

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

NameLength3に0を指定した場合,TableNameにパターン文字列'%'だけを指定したと見なされます。

ColumnName:

列名を指定します。パターン文字列※2を使用して列名を指定できます。

ColumnNameにNULLポインタまたは空の文字列("")だけを指定した場合,ColumnNameにパターン文字列'%'だけを指定したと見なされます。

NameLength4:

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

NameLength4に0を指定した場合,ColumnNameにパターン文字列'%'だけを指定したと見なされます。

注※1

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

注※2

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

(4) 戻り値

SQL_SUCCESS,SQL_ERROR,またはSQL_INVALID_HANDLEが返されます。

この関数を実行したときに返される結果セットの形式を次の表に示します。

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

列番号

型

列名

列の意味

1

Varchar

TABLE_CAT

カタログ名(常にナル値を返します)

2

Varchar

TABLE_SCHEM

スキーマ名

3

Varchar

TABLE_NAME

表名

4

Varchar

COLUMN_NAME

列名

5

Varchar

GRANTOR

アクセス権限の付与者

6

Varchar

GRANTEE

アクセス権限の被付与者

7

Varchar

PRIVILEGE

許可されているアクセス権限を返します。

  • SELECT:SELECT権限

  • INSERT:INSERT権限

  • UPDATE:UPDATE権限

  • DELETE:DELETE権限

  • TRUNCATE:TRUNCATE権限

  • REFERENCES:REFERENCES権限

  • IMPORT TABLE:IMPORT TABLE権限

  • REBUILD INDEX:REBUILD INDEX権限

  • GET COSTINFO:GET COSTINFO権限

  • EXPORT TABLE:EXPORT TABLE権限

  • MERGE CHUNK:MERGE CHUNK権限

  • CHANGE CHUNK COMMENT:CHANGE CHUNK COMMENT権限

  • CHANGE CHUNK STATUS:CHANGE CHUNK STATUS権限

  • ARCHIVE CHUNK:ARCHIVE CHUNK権限

  • UNARCHIVE CHUNK:UNARCHIVE CHUNK権限

8

Varchar

IS_GRANTABLE

アクセス権限の被付与者が,ほかのユーザにアクセス権限を付与できるかどうかを返します。

  • YES:アクセス権限を付与できます。

  • NO:アクセス権限を付与できません。

(5) SQLSTATE

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

SQLSTATE

説明

備考

返却

01000

一般警告

−

×

08S01

通信リンク失敗

×

24000

無効なカーソル状態

カーソルがオープンしている状態のときに実行されました。

○

40001

直列化の失敗

−

×

40003

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

×

HY000

一般エラー

×

HY001

メモリ割り当てエラー

○

HY008

動作がキャンセルされた

×

HY009

NULLポインタの不正使用

×

HY010

関数シーケンスエラー

○

HY013

メモリ管理エラー

×

HY090

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

名前の長さを格納する引数のどれかの値が,対応する名前の最大長を超えているか,またはSQL_NTS以外の負の値になっています。

〇

HY117

接続がサスペンド中

−

×

HYC00

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

×

HYT00

タイムアウト終了

×

HYT01

接続タイムアウト終了

×

IM001

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

×

IM017

非同期ポーリングが不正

×

IM018

非同期実行が未完了

×

(凡例)

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

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

−:なし。