SQLCloseCursor 関数

適合 性
導入バージョン:ODBC 3.0 規格準拠:ISO 92

Summary
SQLCloseCursor は、文で開かれたカーソルを閉じ、保留中の結果を破棄します。

構文

  
SQLRETURN SQLCloseCursor(  
     SQLHSTMT     StatementHandle);  

引数

StatementHandle
[入力]ステートメント ハンドル。

返品

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR、またはSQL_INVALID_HANDLE。

Diagnostics

SQLCloseCursorがSQL_ERRORまたはSQL_SUCCESS_WITH_INFOを返す場合、SQLGetDiagRecHandleTypeのSQL_HANDLE_STMTとStatementHandleハンドルで呼び出すことで関連するSQLSTATE値を取得できます。 以下の表は 、SQLCloseCursor が一般的に返すSQLSTATEの値を一覧にし、それぞれをこの関数の文脈で説明しています。「(DM)」という表記は、ドライバーマネージャーが返すSQLstateの記述の前に記載されます。 特に明記されていない限り、各 SQLSTATE 値に関連付けられている戻りコードはSQL_ERROR。

SQLSTATE エラー Description
01000 一般的な警告 ドライバー固有の情報メッセージ。 (関数はSQL_SUCCESS_WITH_INFOを返します。
24000 カーソル状態が無効 StatementHandleのカーソルは開いていませんでした。 (これはODBC 3のみが返送します。x ドライバー。)
HY000 一般的なエラー 特定の SQLSTATE がなく、実装固有の SQLSTATE が定義されていないエラーが発生しました。 *MessageText バッファー内の SQLGetDiagRec によって返されるエラー メッセージには、エラーとその原因が記述されています。
HY001 メモリ割り当てエラー ドライバーは、関数の実行または完了をサポートするために必要なメモリを割り当てませんでした。
HY010 関数シーケンス エラー (DM) StatementHandle に関連付けられた接続ハンドルに対して非同期実行関数が呼び出され、その関数が呼び出された時点でも実行中でした。

(DM) 非同期実行関数が StatementHandle に対して呼び出され、この関数が呼び出されたときにはまだ実行されていました。

(DM) SQLExecuteSQLExecDirectSQLBulkOperations、または SQLSetPosStatementHandle に対して呼び出され、SQL_NEED_DATAが返されました。 この関数は、すべての実行時データ パラメーターまたは列に対してデータが送信される前に呼び出されました。
HY013 メモリ管理エラー メモリが不足している可能性があるため、基になるメモリ オブジェクトにアクセスできなかったため、関数呼び出しを処理できませんでした。
HY117 不明なトランザクション状態のため、接続が中断されます。 切断関数と読み取り専用関数のみが許可されます。 (DM) 中断状態の詳細については、「 SQLEndTran 関数を参照してください。
HYT01 接続がタイムアウトしました データ ソースが要求に応答する前に、接続タイムアウト期間の有効期限が切れています。 接続タイムアウト期間は、SQL_ATTR_CONNECTION_TIMEOUT SQLSetConnectAttr によって設定されます。
IM001 ドライバーは、この関数をサポートしていません (DM) StatementHandle に関連付けられているドライバーは、関数をサポートしていません。

Comments

SQLCloseCursor は、カーソルが開かれていない場合、SQLSTATE 24000(無効なカーソル状態)を返します。 SQLCloseCursorを呼び出すことは、SQL_CLOSEオプションでSQLFreeStmtを呼び出すのと同等ですが、SQL_CLOSEのSQLFreeStmtは文にカーソルが開かれていなければアプリケーションに影響を与えません。一方、SQLCloseCursorはSQLSTATE 24000(無効カーソル状態)を返します。

Note

ODBC 3の場合。xアプリケーションは ODBC 2と連携しています。x ドライバーはカーソルが開かれていないときに SQLCloseCursor を呼び出します。SQLSTATE 24000(無効なカーソル状態)は返されません。これは、ドライバーマネージャーが SQLCloseCursor を SQL_CLOSE で SQLFreeStmt にマッピングしているためです。

詳細は 「カーソルを閉じる」をご覧ください。

コード例

SQLBrowseConnect 関数SQLConnect 関数を参照してください。

~についての情報 参照先
ステートメント処理の取り消し SQLCancel 関数
ハンドルを解放する SQLFreeHandle 関数
複数の結果セットの処理 SQLMoreResults 関数