JV-Dataの使い方あれこれ |
タイトル | : 『JV-Data登録クラス』の更新処理について |
記事No | : 5238 |
投稿日 | : 2023/09/26(Tue) 17:04 |
投稿者 | : まさ |
|
『JV-Data登録クラス』についての質問となります。
「要数1」の更新処理を見ていましたところ、 INSERT処理には、「発売フラグ単勝」や「発売フラグ複勝」を見て、 「HYOSU_TANPUKU」や「HYOSU_WAKU」に、挿入するか否かを決めておりますが、 UPDATE処理には、上記のフラグを全く見ずにUPDATE処理を行っておりました。
私的には、UPDATE処理にも、「発売フラグ単勝」や「発売フラグ複勝」を見て 、 UPDATE処理を行うか否かを決めるのかと思っておりますが、 何か意図があって、フラグを見ていないのでしょうか? UPDATE時のフラグを判断をすべきかどうかで迷っております。
フラグがない場合、INSERTの条件に合致していない為、データがないという前 提で、 0件のUPDATE処理を行っているかもしれませんが、ご回答を頂けたらと思います 。 |
|
タイトル | : Re: 『JV-Data登録クラス』の更新処理について |
記事No | : 5244 |
投稿日 | : 2023/10/03(Tue) 14:10 |
投稿者 | : JRA-VANソフトサポート |
|
JRA-VANソフトサポート 三木です。 DataLab.サービスをご利用頂きまして誠にありがとうございます。
> UPDATE処理にも、「発売フラグ単勝」や「発売フラグ複勝」を見て、 > UPDATE処理を行うか否かを決めるのかと思っておりますが、 > 何か意図があって、フラグを見ていないのでしょうか? > UPDATE時のフラグを判断をすべきかどうかで迷っております。 > > フラグがない場合、INSERTの条件に合致していない為、 > データがないという前提で、 > 0件のUPDATE処理を行っているかもしれませんが、 > ご回答を頂けたらと思います。
「発売フラグ単勝」や「発売フラグ複勝」は、データ提供元が設定した値を そのままご提供しております。
データの使用用途によるかと思いますが、 UPDATE処理時、「0:発売なし」以外のデータ (「1:発売前取消」「3:発売後取消」「7:発売あり」)が 「0:発売なし」に変更されることを考慮しますと、 フラグを判断条件にしないほうがよいかと存じます。
どうぞよろしくお願いいたします。 |
|
タイトル | : Re^2: 『JV-Data登録クラス』の更新処理について |
記事No | : 5245 |
投稿日 | : 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以外のテーブル』のデータは必ず作成・更新されると思われますが、い かがでしょうか? |
|
タイトル | : Re^3: 『JV-Data登録クラス』の更新処理について |
記事No | : 5248 |
投稿日 | : 2023/10/10(Tue) 14:13 |
投稿者 | : JRA-VANソフトサポート |
|
JRA-VANソフトサポート 三木です。 DataLab.サービスをご利用頂きまして誠にありがとうございます。
> 『HEAD以外のテーブル』に挿入する・しないの判断を設けると、 > 『HEADのテーブル』のレコードの有無だけで、 > INSERT、UPDATEを判断するのはダメということになります。 > > 判断が色々面倒になってくるため、 > 現在の『JV-Data登録クラス』にもいえることですが、 > フラグを判断条件にしないほうがよいというご指摘通り、 > INSERTにおいても、フラグの条件を省くべきではないかと思います。
ご指摘通り、フラグを判定条件にしないほうが 上位データ提供元の値に左右されないかと存じます。
ご指摘の報告が正しいと判断し、 今後、サンプルプログラムについて、再考させていただきます。
どうぞよろしくお願いいたします。 |
|
タイトル | : Re^4: 『JV-Data登録クラス』の更新処理について |
記事No | : 5249 |
投稿日 | : 2023/10/10(Tue) 16:37 |
投稿者 | : まさ |
|
JRA-VANソフトサポート 三木様
ご回答頂きまして、ありがとうございます。
> ご指摘通り、フラグを判定条件にしないほうが > 上位データ提供元の値に左右されないかと存じます。
よくよくみると、「発売フラグ単勝」だけではなく、 「馬番」が空白かどうかという条件でINSERTしておりました。
ありえるかどうかわかりませんが、データ提供ミスで、 後で馬番が追加されたら、やはりINSERTされなくなるので、
UPDATEではなく、DELETE-INSERTで対応しようと思います。 そうすれば、フラグ判定や馬番空白判定があっても、 追加されないといった事象はなくなるでしょうから・・
どうもありがとうございました。 |
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|