16.11.1 SQLFreeStmt
(1) 機能
指定したステートメントについて,オプションで指定された処理をします。関連する処理の停止,カーソルのクローズ,未処理結果の廃棄,ステートメントハンドルに関連するすべてのリソースの解放処理などをします。
(2) 形式
SQLRETURN SQLFreeStmt ( SQLHSTMT StatementHandle, /* In */ SQLUSMALLINT Option /* In */ )
(3) 引数
- StatementHandle:
-
ステートメントハンドルを指定します。
この関数を実行する前にSQLAllocHandleの*OutputHandlePtrで出力された値を指定します。
- Option:
-
次のうちのどれかのオプションを指定します。
オプションシンボル
内容
SQL_CLOSE
StatementHandleが管理しているカーソルをクローズします。SQLCloseCursorと同じ処理をしますが,この関数では,カーソルがオープンしていない場合,エラーになりません。SQL_SUCCESSで終了します。
SQL_UNBIND
ARDのSQL_DESC_COUNTフィールドに0を設定し,StatementHandleに対してSQLBindColで設定された列のバインドをすべて解除します。
SQL_RESET_PARAMS
APDのSQL_DESC_COUNTフィールドに0を設定し,StatementHandleに対してSQLBindParameterで設定されたパラメタのバインドをすべて解除します。
(4) 戻り値
SQL_SUCCESS,SQL_SUCCESS_WITH_INFO,SQL_ERROR,またはSQL_INVALID_HANDLEが返されます。
(5) SQLSTATE
この関数では次のSQLSTATEを返します。
SQLSTATE |
説明 |
備考 |
返却 |
---|---|---|---|
01000 |
一般警告 |
− |
× |
24000 |
無効なカーソル状態 |
○ |
|
HY000 |
一般エラー |
× |
|
HY001 |
メモリ割り当てエラー |
× |
|
HY010 |
関数シーケンスエラー |
この関数を実行する前にSQLExecute,SQLExecDirect,SQLExecDirectWまたはSQLParamDataのどれかがStatementHandleに対して呼び出され,SQL_NEED_DATAを返しました。その後,実行時データパラメタまたは実行時データ列の設定が完了していません。 |
○ |
HY013 |
メモリ管理エラー |
− |
× |
HY092 |
無効な属性識別子,または無効なオプション識別子 |
OptionにSQL_DROPまたは無効な識別子が指定されました。 |
○ |
HYT01 |
接続タイムアウト終了 |
− |
× |
IM001 |
ドライバはこの関数をサポートしていない |
× |
- (凡例)
-
○:HADB ODBCドライバが返すことがあるSQLSTATEです。
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。
(6) 注意事項
OptionのSQL_DROPはサポートしていないため,ステートメントハンドルの解放はSQLFreeHandleで行ってください。
また,OptionのSQL_UNBINDおよびSQL_RESET_PARAMSではアンバインド処理だけをし,メモリの解放はしません。そのため,SQLBindColおよびSQLBindParameterでHADB ODBCドライバに渡したデータのメモリ領域の解放はAPで実行してください。