現在のバージョンの
Enterprise Developer を次のような SQL アプリケーションで使用するとします:
- 以前の Micro Focus COBOL 開発製品または、2.1 より前のバージョンの Enterprise Developer で開発されたアプリケーション
- 2.1 より新しいバージョンの Enterprise Developer に移行されたアプリケーション
この場合は、一時的な解決方法として BEHAVIOR=UNOPTIMIZED を設定し、新しいバージョンの
Enterprise Developer でアプリケーションをコンパイルおよび実行してください。
BEHAVIOR=UNOPTIMIZED は OpenESQL の設定を以前の製品バージョンのデフォルト動作に戻すため、アプリケーションが開発されたときのデフォルトの動作を使用して、明確に宣言されていない埋め込み SQL カーソルを処理します。次を含むアプリケーションには、この一時的な解決策を適用してください:
- EXEC SQL SET CONCURRENCY
- EXEC SQL SET SCROLLOPTION
- EXEC SQL SET CURSORTYPE
- EXEC SQL COMMIT 文の後にカーソルで発生する FETCH は実行されます
ただし、この一時的な解決方法では最適なパフォーマンスが得られないため、最終的には古い SQL アプリケーションを更新して、現在の Enterprise Developer にある最適化機能を利用することをお勧めします。それには、次の手順を実行します。
- EXEC SQL SET CONCURRENCY、SET SCROLLOPTION、および SET CURSORTYPE 文を削除します。これらは適切な BEHAVIOR 基本指令を設定して置換します。
- EXEC SQL COMMIT 文の実行後にカーソルで FETCH が発生するアプリケーションは 2 とおりの方法で更新できます。次のいずれかを実行します:
- WITH HOLD 句を DECLARE CURSOR 文に追加してコードを変更します
- コードは変更せずに、適切な BEHAVIOR 基本指令を指定します