($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
RE:コンパイル時のCOMMIT値は? IKD さん [ 1月28日(木) 21時3分 ]
SQLバインドのプログラムをコンパイルするときには
COMMIT を使っていないのであれば COMMIT *NONE でコンパイルするのが
正しいやり方です。

COMMIT は SQL での更新をロール・バック(ROLLBK=元に戻す) ために
ヒストリーにログを書くために使用するだけです。

どのような業務で更新されているのか不明ですが
SQL 更新の場合、ひとつひとつの UPDATE/INSERT を行って
複数のファイルを更新していくと、どれかの更新が失敗すれば
既に更新した他の更新も元に戻さないと整合性が取れなくなってしまう場合があります。

このようなときのために COMMIT から次の COMMIT のあいだまでに
問題が発生すれば ROLLBK で元に戻すことができます。
ただし COMMIT を使う場合は環境の用意も必要です。

このように複数のファイルを更新しているのでなければ COMMIT は *NONE で
問題はありません。

ただし、SQL による COMMIT/ROLLBK の更新はパフォーマンスも低下しますし
メモリも大量に消費します。
前時代的な方法ですのであまりお勧めはできません。
RE:コンパイル時のCOMMIT値は? AS400初心者 さん [ 1月29日(金) 9時41分 ]
詳しく教えていただきありがとうございます。
非常に勉強になりました。

今回しようと思っていることは、
 1.画面内の8項目くらいを表示
 2.項目でファンクションキーを押下するとその項目のポップアップに
   一覧を表示
 3.その一覧で選択された値が(複数、飛び石可)その項目の抽出条件
 4.8項目でそれぞれ動的に設定された値を1つのWHERE文として変数に格納
 5.SQL文を実行(ここでWKに抽出結果を書き込み)
 6.RPGで再度抽出


という流れになります。
3の部分をRPGでやるよりはSQLで出来る方が開発工数や、実行速度という観点で
良いのではと思い、色々試行錯誤して作成していました。


>ただし COMMIT を使う場合は環境の用意も必要です

1点、ご説明いただいた中で質問させていただきたいのですが
こちらの環境というのは、ジャーナルファイルが必要ということでしょうか?

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目