COBOL2002 使用の手引 手引編


23.2.10 動的SQLのODBC API関数発行の変更

ODBCインタフェース機能の動的SQLで内部的に発行するODBC APIを変更したい場合に,実行時環境変数CBLSQLDYNAMICを指定します。

実行時環境変数CBLSQLDYNAMICを指定すると,実行性能が改善することがあります。

形式
CBLSQLDYNAMIC=REUSEBINDINFO
規則
  • 設定値が形式に従ってない場合,この環境変数の指定は無効です。

  • 環境変数CBLSQLDYNAMICにREUSEBINDINFOを指定すると,埋め込みSQL文で内部的に発行するODBC APIを次のとおりに変更し,1回目の埋め込みSQL文実行時に取得した情報で2回目以降も実行します。

・次の埋め込みSQL文を連続で実行した場合

2回目以降の実行では,1回目に取得した情報をバインド処理で再利用します。※1

  • EXECUTE文

  • 動的SQLをカーソルで実行する場合のOPEN文

  • 動的SQLをカーソルで実行する場合のOPEN文に対する最初のFETCH文

・PREPARE文で準備した動的SQLが,INSERT文,DELETE文,またはUPDATE文の場合

埋め込みSQL文のEXECUTE文を連続で実行したときに,2回目以降の実行では1回目に取得したODBCハンドル情報を再利用します。※2

注※1

2回目以降の埋め込みSQL文の実行で,内部的にSQLDescribeParam,SQLDescribeCol,SQLNumResultColsを呼び出さない(パラメタ,列情報を取得しない)ようにすることで,1回目の埋め込みSQL文の実行で取得したパラメタ,列情報を再利用します。

注※2

埋め込みSQL文のEXECUTE文の実行で,内部的にSQLFreeStmtをSQL_CLOSEパラメタ指定で呼び出さない(ODBCハンドル情報をクローズしない)ようにすることで,1回目の埋め込みSQL文のEXECUTE文の実行で取得したODBCハンドル情報を再利用します。