JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

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以外のテーブル』のデータは必ず作成・更新されると思われますが、い
かがでしょうか?
- 関連一覧ツリー(● をクリックするとツリー全体を一括表示します)
返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ   文字モード 図表モード
URL
パスワード (英数字で8文字以内)
  プレビュー
- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード
ウィンドウを閉じる