16.7.3 SQLGetCursorName,SQLGetCursorNameW
(1) 機能
指定したステートメントハンドルに関連づけられたカーソル名を返します。
(2) 形式
-
SQLGetCursorNameの場合
SQLRETURN SQLGetCursorName ( SQLHSTMT StatementHandle, /* In */ SQLCHAR * CursorName, /* Out */ SQLSMALLINT BufferLength, /* In */ SQLSMALLINT * NameLengthPtr /* Out */ )
-
SQLGetCursorNameWの場合
SQLRETURN SQLGetCursorNameW ( SQLHSTMT StatementHandle, /* In */ SQLWCHAR * CursorName, /* Out */ SQLSMALLINT BufferLength, /* In */ SQLSMALLINT * NameLengthPtr /* Out */ )
(3) 引数
- StatementHandle:
-
ステートメントハンドルを指定します。
- CursorName:
-
カーソル名を返すバッファへのポインタを指定します。
- BufferLength:
-
*CursorNameの長さ※を指定します。SQL_NTSは指定できません。
- NameLengthPtr:
-
*CursorNameに返す有効な長さ※の合計を格納するバッファへのポインタを指定します。この長さにNULL終端文字は含まれません。
- 注※
-
長さの単位は,SQLGetCursorNameの場合はバイト長,SQLGetCursorNameWの場合は文字数となります。
(4) 戻り値
SQL_SUCCESS,SQL_SUCCESS_WITH_INFO,SQL_ERROR,またはSQL_INVALID_HANDLEが返されます。
(5) SQLSTATE
この関数では次のSQLSTATEを返します。
SQLSTATE |
説明 |
備考 |
返却 |
---|---|---|---|
01000 |
一般警告 |
− |
× |
01004 |
文字列データの右側が切り捨てられた |
*CursorNameバッファの大きさが不足しているため,カーソル名を格納できませんでした(カーソル名が切り捨てられました)。このとき,SQL_SUCCESS_WITH_INFOを返します。 |
○ |
01S51 |
文字コード変換時に置き換えが発生した |
変換できない文字コードを検出し,指定の文字に置き換えました。このとき,SQL_SUCCESS_WITH_INFOを返します。 |
○ |
HY000 |
一般エラー |
− |
× |
HY001 |
メモリ割り当てエラー |
× |
|
HY010 |
関数シーケンスエラー |
○ |
|
HY013 |
メモリ管理エラー |
メモリオブジェクトにアクセスできないため,関数の呼び出しを処理できません。 |
× |
HY015 |
利用できるカーソル名がない |
− |
× |
HY090 |
無効な文字列長または無効なバッファ長 |
|
○ |
HYT01 |
接続タイムアウト終了 |
データソースが要求に応答する前に接続タイムアウト時間が経過しました。接続タイムアウト時間は,SQLSetConnectAttrまたはSQLSetConnectAttrWのSQL_ATTR_CONNECTION_TIMEOUTで設定できます。 |
× |
IM001 |
ドライバはこの関数をサポートしていない |
− |
× |
- (凡例)
-
○:HADB ODBCドライバが返すことがあるSQLSTATEです。
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。
(6) 注意事項
-
SQLSetCursorName関数またはSQLSetCursorNameW関数を使用しないで,明示的なカーソル名を設定していない場合,この関数はHADB ODBCドライバが自動で生成するカーソル名を返します。自動で生成するカーソル名は「SQL_CURXXXXX(XXXXX:00001から始まる通番)」です。
-
この関数で取得したカーソル名を使用する場合は,マイクロソフト社が提供するカーソルライブラリを使用してください。マイクロソフト社が提供するカーソルライブラリを使用しない場合,HADB ODBCドライバはステートメントハンドルに関連づけられたカーソル名を無視します。