16.10.1 SQLColumnPrivileges,SQLColumnPrivilegesW
- 〈この項の構成〉
(1) 機能
指定されたテーブルの列と関連づけられた特権の一覧を返します。SQLの結果セットの形式で出力します。
(2) 形式
-
SQLColumnPrivilegesの場合
SQLRETURN SQLColumnPrivileges ( SQLHSTMT StatementHandle, /* In */ SQLCHAR * CatalogName, /* In */ SQLSMALLINT NameLength1, /* In */ SQLCHAR * SchemaName, /* In */ SQLSMALLINT NameLength2, /* In */ SQLCHAR * TableName, /* In */ SQLSMALLINT NameLength3, /* In */ SQLCHAR * ColumnName, /* In */ SQLSMALLINT NameLength4 /* In */ )
-
SQLColumnPrivilegesWの場合
SQLRETURN SQLColumnPrivilegesW ( SQLHSTMT StatementHandle, /* In */ SQLWCHAR * CatalogName, /* In */ SQLSMALLINT NameLength1, /* In */ SQLWCHAR * SchemaName, /* In */ SQLSMALLINT NameLength2, /* In */ SQLWCHAR * TableName, /* In */ SQLSMALLINT NameLength3, /* In */ SQLWCHAR * ColumnName, /* In */ SQLSMALLINT NameLength4 /* In */ )
(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が返されます。
この関数を実行したときに返される結果セットの形式を次の表に示します。
列番号 |
型 |
列名 |
列の意味 |
---|---|---|---|
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 |
許可されているアクセス権限を返します。
|
8 |
Varchar |
IS_GRANTABLE |
アクセス権限の被付与者が,ほかのユーザにアクセス権限を付与できるかどうかを返します。
|
(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です。
−:なし。