仕様: | DB2 CLI 1.1 | ODBC 1.0 | ISO CLI |
SQLGetCursorName() は、入力ステートメント・ハンドルに関連したカーソル名を返します。 SQLSetCursorName() を呼び出してカーソル名を明示設定すると、このカーソル名が返されます。それ以外の場合は暗黙生成された名前が返されます。
構文
SQLRETURN SQLGetCursorName ( SQLHSTMT StatementHandle, /* hstmt */ SQLCHAR *FAR CursorName, /* szCursor */ SQLSMALLINT BufferLength, /* cbCursorMax */ SQLSMALLINT *FAR NameLengthPtr); /* pcbCursor */
関数引き数
データ・タイプ | 引き数 | 使用法 | 説明 |
---|---|---|---|
SQLHSTMT | StatementHandle | 入力 | ステートメント・ハンドル |
SQLCHAR * | CursorName | 出力 | カーソル名。 |
SQLSMALLINT | BufferLength | 入力 | バッファー CursorName の長さ。 |
SQLSMALLINT * | NameLengthPtr | 出力 | CursorName に返すために利用可能なバイト数。 |
使用法
SQLGetCursorName() は、 SQLSetCursorName() に明示的に設定されたカーソル名を返すか、または名前が設定されていない場合は、DB2 CLI によって内部で生成されたカーソル名を返します。
SQLSetCursorName() を使用して名前を明示設定すると、ステートメントを除去するか、別の明示的な名前を設定するまで、この名前が返されます。
内部で生成されたカーソル名は、常に SQLCUR または SQL_CUR で始まります。カーソル名は常に 18 文字以下であり、接続で常に固有です。
戻りコード
診断
表 93. SQLGetCursorName SQLSTATE
SQLSTATE | 説明 | 解説 |
---|---|---|
01004 | データが切り捨てられました。 | CursorName 内に返されたカーソル名は BufferLength 内の値より長かったので、 BufferLength - 1 バイトに切り捨てられます。引き数 NameLengthPtr には、戻りに使用できる完全カーソル名の長さが含まれています。関数は、 SQL_SUCCESS_WITH_INFO を返します。 |
40003 08S01 | 通信リンクに障害が起きました。 | アプリケーションとデータ・ソースとの間の通信リンクが、関数の完了する前に失敗しました。 |
58004 | 予期しないシステム障害です。 | 回復不能システム・エラー。 |
HY001 | メモリーの割り振り失敗です。 | DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。 |
HY010 | 関数の順序エラーです。 |
実行時データ (SQLParamData()、SQLPutData()) 操作中に、関数が呼び出されました。 BEGIN COMPOUND と END COMPOUND SQL の操作中に、関数が呼び出されました。 非同期実行関数 (この関数ではない) が StatementHandle で呼び出され、この関数は、呼び出し時に依然実行中でした。
|
HY013 | 予期しないメモリーのハンドル・エラーが起きました。 | DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを使用することができませんでした。 |
HY090 | ストリングまたはバッファー長が無効です。 | 引き数 BufferLength に指定された値は 0 より小さい値です。 |
制約
ODBC 生成のカーソル名は SQL_CUR で始まり、 DB2 CLI 生成のカーソル名は SQLCUR で始まり、 X/Open CLI 生成のカーソル名は SQLCUR または SQL_CUR で始まります。
(ここで完全サンプル tbmod.c を使用することもできます 。)
/* From the CLI sample TBMOD.C */ /* ... */ /* get the cursor name of the SELECT statement */ sqlrc = SQLGetCursorName( hstmtSelect, cursorName, 20, &cursorLen ) ;
参照