JV-Dataの使い方あれこれ |
タイトル | : Re^2: 『JV-Data登録クラス』の更新処理について |
投稿日 | : 2023/10/04(Wed) 09:17 |
投稿者 | : まさ |
|
JRA-VANソフトサポート 三木様
ご回答頂きまして、ありがとうございました。 回答を見て、色々考えたのですが、 『JV-Data登録クラス』の新たな問題に気付きました。
> UPDATE処理時、「0:発売なし」以外のデータ > (「1:発売前取消」「3:発売後取消」「7:発売あり」)が > 「0:発売なし」に変更されることを考慮しますと、 > フラグを判断条件にしないほうがよいかと存じます。
おっしゃる通り、「7:発売あり」→「0:発売なし」のケースですと、 フラグを判断条件にいれると、確かに更新されなくなります。
なお、「0:発売なし」→「7:発売あり」のケースですと、 フラグを判断条件にいれなくても、挿入されない問題を見つけました。
これは、「票数」や「オッズ」に関するテーブルにおける考えですが、 1つのテキストファイルが、2つ以上のテーブル(ヘッダー部、ヘッダー部以外 )に格納されるようなケース(フラグで判断)では、 ヘッダー部には必ずINSERTされますが、 ヘッダー部以外には、「0:発売なし」はINSERTされません。
よって、以下の事が発生します。 @ フラグがある事により、 『HEADのテーブル』にデータ有り、『HEAD以外のテーブル』にデータ無しとい うケースがある。
A 『HEAD以外のテーブル』がINSERT、UPDATEされるかは、 『HEADのテーブル』のレコードの有無で、判断される。
この2点により、 @のようなデータに対し、『HEAD以外のテーブル』にデータ有りといった変更 (「0:発売なし」→「7:発売あり」)があった場合、 Aの条件で、『HEAD以外のテーブル』にはUPDATE文が走ることにより、 INSERTできないといった状態になっております。
これは、現在の『JV-Data登録クラス』で発生致します。
『HEAD以外のテーブル』に挿入する・しないの判断を設けると、 『HEADのテーブル』のレコードの有無だけで、 INSERT、UPDATEを判断するのはダメということになります。
判断が色々面倒になってくるため、 現在の『JV-Data登録クラス』にもいえることですが、 フラグを判断条件にしないほうがよいというご指摘通り、 INSERTにおいても、フラグの条件を省くべきではないかと思います。
そうすれば、「0:発売なし」→「7:発売あり」、 「7:発売あり」→「0:発売なし」のどちらでも 『HEAD以外のテーブル』のデータは必ず作成・更新されると思われますが、い かがでしょうか? |
|
|
- 関連一覧ツリー(● をクリックするとツリー全体を一括表示します)
|
|
|
|
|
|
返信フォーム
(この記事に返信する場合は下記フォームから投稿して下さい) |
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|