適合 性
導入バージョン: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を返す場合、SQLGetDiagRecをHandleTypeの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) SQLExecute、 SQLExecDirect、 SQLBulkOperations、または SQLSetPos が StatementHandle に対して呼び出され、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 関数 |