16.9.3 SQLDescribeCol,SQLDescribeColW
- 〈この項の構成〉
(1) 機能
SQLPrepareの実行によって得られた,結果セットの列の情報を返します。この情報は,IRDのフィールドに設定されているものです。
(2) 形式
-
SQLDescribeColの場合
SQLRETURN SQLDescribeCol ( SQLHSTMT StatementHandle, /* In */ SQLUSMALLINT ColumnNumber, /* In */ SQLCHAR * ColumnName, /* Out */ SQLSMALLINT BufferLength, /* In */ SQLSMALLINT * NameLengthPtr, /* Out */ SQLSMALLINT * DataTypePtr, /* Out */ SQLULEN * ColumnSizePtr, /* Out */ SQLSMALLINT * DecimalDigitsPtr, /* Out */ SQLSMALLINT * NullablePtr /* Out */ )
-
SQLDescribeColWの場合
SQLRETURN SQLDescribeColW ( SQLHSTMT StatementHandle, /* In */ SQLUSMALLINT ColumnNumber, /* In */ SQLWCHAR * ColumnName, /* Out */ SQLSMALLINT BufferLength, /* In */ SQLSMALLINT * NameLengthPtr, /* Out */ SQLSMALLINT * DataTypePtr, /* Out */ SQLULEN * ColumnSizePtr, /* Out */ SQLSMALLINT * DecimalDigitsPtr, /* Out */ SQLSMALLINT * NullablePtr /* Out */ )
(3) 引数
- StatementHandle:
-
ステートメントハンドルを指定します。
- ColumnNumber:
-
結果データの列番号を指定します。
- ColumnName:
-
列名を返すバッファへのポインタを指定します。検索結果列の名称については,マニュアルHADB SQLリファレンスのSELECT文の指定形式および規則の規則を参照してください。
- BufferLength:
-
*ColumnNameバッファの長さ※を指定します。この長さにNULL終端文字は含まれます。SQL_NTSは指定できません。
- NameLengthPtr:
-
*ColumnNameに設定される値の有効な長さ※の合計を格納するバッファへのポインタを指定します。この長さにNULL終端文字は含まれません。
- 重要
-
ここに格納された*ColumnNameの列名の長さ※が,BufferLengthからNULL終端文字分を引いた長さ※より大きい場合,ColumnNameに格納される文字列はBufferLengthからNULL終端文字分を引いた長さ※に切り捨てられ,末尾にNULL終端文字が付加されます。
- DataTypePtr:
-
列のSQLデータ型を返すバッファへのポインタを指定します。データ型が不明な場合,SQL_C_DEFAULTが返されます。
- ColumnSizePtr:
-
データソースの列のサイズを返すバッファへのポインタを指定します。列のサイズが不明な場合,0が返されます。
- DecimalDigitsPtr:
-
データソースの列の小数の桁数を返すバッファへのポインタを指定します。小数の桁数が不明,または適用されない場合,0が返されます。
- NullablePtr:
-
列がナル値を受け付けるかどうかを示す値を返すバッファへのポインタを指定します。次の値が返されます。
-
SQL_NO_NULLS
列はナル値を受け付けません。
-
SQL_NULLABLE
列はナル値を受け付けます。
-
- 注※
-
長さの単位は,SQLDescribeColの場合はバイト長,SQLDescribeColWの場合は文字数となります。
(4) 戻り値
SQL_SUCCESS,SQL_SUCCESS_WITH_INFO,SQL_ERROR,またはSQL_INVALID_HANDLEが返されます。
(5) SQLSTATE
この関数では次のSQLSTATEを返します。
SQLSTATE |
説明 |
備考 |
返却 |
---|---|---|---|
01000 |
一般警告 |
− |
× |
01004 |
文字列データの右側が切り捨てられた |
○ |
|
01S51 |
文字コード変換時に置き換えが発生した |
変換できない文字コードを検出し,指定の文字に置き換えました。このとき,SQL_SUCCESS_WITH_INFOを返します。 |
○ |
07005 |
準備されたステートメントがcursor-specificationではない |
− |
○ |
07009 |
無効なディスクリプタインデクス |
○ |
|
08S01 |
通信リンク失敗 |
× |
|
24000 |
無効なカーソル状態 |
○ |
|
HY000 |
一般エラー |
× |
|
HY001 |
メモリ割り当てエラー |
× |
|
HY008 |
動作がキャンセルされた |
× |
|
HY010 |
関数シーケンスエラー |
○ |
|
HY013 |
メモリ管理エラー |
× |
|
HY090 |
無効な文字列長または無効なバッファ長 |
BufferLengthに無効な値(SQL_NTS)が指定されました。 |
○ |
HYT01 |
接続タイムアウト終了 |
− |
× |
IM001 |
ドライバはこの関数をサポートしていない |
× |
- (凡例)
-
○:HADB ODBCドライバが返すことがあるSQLSTATEです。
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。