Hitachi

Hitachi Advanced Data Binder AP開発ガイド


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_SUCCESSSQL_SUCCESS_WITH_INFOSQL_ERROR,またはSQL_INVALID_HANDLEが返されます。

(5) SQLSTATE

この関数では次のSQLSTATEを返します。

SQLSTATE

説明

備考

返却

01000

一般警告

×

24000

無効なカーソル状態

HY000

一般エラー

×

HY001

メモリ割り当てエラー

×

HY010

関数シーケンスエラー

この関数を実行する前にSQLExecuteSQLExecDirectSQLExecDirectWまたはSQLParamDataのどれかがStatementHandleに対して呼び出され,SQL_NEED_DATAを返しました。その後,実行時データパラメタまたは実行時データ列の設定が完了していません。

HY013

メモリ管理エラー

×

HY092

無効な属性識別子,または無効なオプション識別子

OptionSQL_DROPまたは無効な識別子が指定されました。

HYT01

接続タイムアウト終了

×

IM001

ドライバはこの関数をサポートしていない

×

(凡例)

○:HADB ODBCドライバが返すことがあるSQLSTATEです。

×:HADB ODBCドライバが返さないSQLSTATEです。

−:なし。

(6) 注意事項

OptionSQL_DROPはサポートしていないため,ステートメントハンドルの解放はSQLFreeHandleで行ってください。

また,OptionSQL_UNBINDおよびSQL_RESET_PARAMSではアンバインド処理だけをし,メモリの解放はしません。そのため,SQLBindColおよびSQLBindParameterでHADB ODBCドライバに渡したデータのメモリ領域の解放はAPで実行してください。