SQLFreeStmt - ステートメント・ハンドルの解放 (またはリセット)

目的

仕様: DB2 CLI 1.1 ODBC 1.0 ISO CLI

SQLFreeStmt() は、ステートメント・ハンドルによって参照された ステートメントの処理を終了します。この関数を使用して以下を実行することができます。

SQLFreeStmt() は、SQL ステートメントの実行と結果の処理の後に 呼び出します。

構文

SQLRETURN   SQLFreeStmt      (SQLHSTMT          StatementHandle,   /* hstmt */
                              SQLUSMALLINT      Option);           /* fOption */

関数の引き数

表 62. SQLFreeStmt の引き数

データ・タイプ 引き数 用途 説明
SQLHSTMT StatementHandle 入力 ステートメント・ハンドル。
SQLUSMALLINT Option 入力 ステートメント・ハンドルを解放する方法を指定するオプション。 オプションの値は SQL_DROP または SQL_RESET_PARAMS でなければならない。

使用法

SQLFreeStmt() は以下のオプションを指定して呼び出すことができます。

SQL_DROP
入力ステートメント・ハンドルに関連する DB2 CLI リソースが解放され、 ハンドルが無効になります。保留中の結果はすべて廃棄されます。

このオプションは、HandleType が SQL_HANDLE_STMT に設定され た SQLFreeHandle() の呼び出しによって置き換えられました。

推奨事項: このバージョンの DB2 CLI では、引き続き このオプションをサポートしますが、最新の標準に準拠 するよう、DB2 CLI プログラムでは SQLFreeHandle() を使用してください。

SQL_RESET_PARAMS
StatementHandle のために SQLBindParameter() によって 設定されたすべてのパラメーター・バッファーを解放します。

別の方法として、ステートメント・ハンドルを除去し、新しいハンドルを割り当てることもできます。

戻りコード

Option が SQL_DROP に設定されている場合、SQL_SUCCESS_WITH_INFO は戻されません。SQLError() の 呼び出し時に使用するステートメント・ハンドルがないためです。

診断

表 63. SQLFreeStmt の SQLSTATE

SQLSTATE 説明 解説
40003 08S01 通信リンク障害。 関数の完了前に、アプリケーションとデータ・ソース間の通信リンクに障害が生じた。
58004 予期しないシステム障害。 回復不能なシステム・エラー。
HY001 メモリーの割り振りの失敗。 DB2 CLI が、関数の実行または完了のサポートに必要なメモリーを 割り当てることができない。
HY092 オプション・タイプが範囲外。 引き数 Option に指定した値が SQL_DROP または SQL_RESET_PARAMS ではない。

制約事項

なし。

関連した解説