SQLCloseCursor 関数
準拠
導入されたバージョン: ODBC 3.0 標準コンプライアンス: ISO 92
まとめ
SQLCloseCursor は、ステートメントで開かれたカーソルを閉じ、保留中の結果を破棄します。
構文
SQLRETURN SQLCloseCursor(
SQLHSTMT StatementHandle);
引数
StatementHandle
[入力]ステートメント ハンドル。
戻り値
SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR、またはSQL_INVALID_HANDLE。
診断
SQLCloseCursor がSQL_ERRORまたはSQL_SUCCESS_WITH_INFOを返す場合、関連付けられた SQLSTATE 値を取得するには、HandleType が SQL_HANDLE_STMT で、Handle of StatementHandle を使用して SQLGetDiagRec を呼び出します。 次の表に、 SQLCloseCursor によって一般的に返される SQLSTATE 値の一覧を示し、この関数のコンテキストでそれぞれについて説明します。"(DM)" という表記は、ドライバー マネージャーによって返される SQLSTATEs の説明の前にあります。 特に明記されていない限り、各 SQLSTATE 値に関連付けられた戻りコードはSQL_ERRORされます。
SQLSTATE | エラー | 説明 |
---|---|---|
01000 | 一般的な警告 | ドライバー固有の情報メッセージ。 (関数はSQL_SUCCESS_WITH_INFOを返します。 |
24000 | カーソル状態が無効 | StatementHandle でカーソルが開いていません。 (これは ODBC 3 によってのみ返されます。x ドライバー。) |
HY000 | 一般的なエラー | 特定の SQLSTATE がなく、実装固有の SQLSTATE が定義されていないエラーが発生しました。 *MessageText バッファー内の SQLGetDiagRec によって返されるエラー メッセージは、エラーとその原因を説明します。 |
HY001 | メモリ割り当てエラー | ドライバーは、関数の実行または完了をサポートするために必要なメモリを割り当てることができませんでした。 |
HY010 | 関数シーケンス エラー | (DM) 非同期実行関数は 、StatementHandle に関連付けられている接続ハンドルに対して呼び出され、この関数が呼び出されたときにまだ実行されていました。 (DM) 非同期実行関数が StatementHandle に対して呼び出され、この関数が呼び出されたときにまだ実行されていました。 (DM) StatementHandle に対して SQLExecute、SQLExecDirect、SQLBulkOperations、または SQLSetPos が呼び出され、SQL_NEED_DATA返されました。 この関数は、すべての実行時データ パラメーターまたは列に対してデータが送信される前に呼び出されました。 |
HY013 | メモリ管理エラー | メモリが不足している可能性があるため、基になるメモリ オブジェクトにアクセスできなかったため、関数呼び出しを処理できませんでした。 |
HY117 | トランザクションの状態が不明なため、接続が中断されます。 切断と読み取り専用の関数のみが許可されます。 | (DM) 中断状態の詳細については、「 SQLEndTran 関数」を参照してください。 |
HYT01 | 接続のタイムアウト | データ ソースが要求に応答する前に、接続タイムアウト期間の有効期限が切れています。 接続タイムアウト期間は、 SQLSetConnectAttr (SQL_ATTR_CONNECTION_TIMEOUT) によって設定されます。 |
IM001 | ドライバーは、この関数をサポートしていません | (DM) StatementHandle に関連付けられているドライバーは、 関数をサポートしていません。 |
説明
カーソルが開かっていない場合、SQLCloseCursor は SQLSTATE 24000 (無効なカーソル状態) を返します。 SQLCloseCursor の呼び出しは、SQL_CLOSE オプションを使用して SQLFreeStmt を呼び出すのと同じですが、sqlFreeStmt と SQL_CLOSE は、ステートメントでカーソルが開かなければアプリケーションに影響を及ぼすのに対し、SQLCloseCursor は SQLSTATE 24000 (無効なカーソル状態) を返します。
Note
ODBC 3 の場合。x ODBC 2 を使用するアプリケーション。x ドライバーは、カーソルが開かれたときに SQLCloseCursor を 呼び出します。ドライバー マネージャーは SQLCloseCursor を sqlFreeStmt にマップするため、SQLSTATE 24000 (無効なカーソル状態) は返されませんSQL_CLOSE。
詳細については、「 カーソルを閉じる」を参照してください。
コード例
SQLBrowseConnect 関数と SQLConnect 関数に関するページを参照してください。
関連する関数
対象 | 解決方法については、 |
---|---|
ステートメント処理の取り消し | SQLCancel 関数 |
ハンドルの解放 | SQLFreeHandle 関数 |
複数の結果セットの処理 | SQLMoreResults 関数 |