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

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Dataの使い方あれこれ

一括表示 リストに戻る
タイトルDBに単勝の時系列オッズを入力したい
記事No5168
投稿日: 2022/10/17(Mon) 12:15
投稿者くるみ
 「プログラミングパーツ・開発支援ツール提供コーナー」で提供されているデ
ータベース作成クラスで作成したDBに単勝の時系列オッズを入力したいです。

 作成したプログラムでは蓄積系データを問題なくDBに入力できました。しか
し、速報系データの時系列オッズをDBに入力するため、発表月日時分をキーとし
て設定する処理(clsDBBuilder.vbのCreateDBメソッドのCREATE TABLE ODDS_TAN
PUKUWAKU_HEADのブロックの”CONSTRAINT ODDS_TANPUKUWAKU_HEAD PRIMARY KEY
(中略)RaceNum));"のRaceNumの後ろに,HappyoTimeを追加する処理)を行
いましたが、以下のエラーメッセージが表示されました。

 インデックス、主キー、またはリレーションシップで重複する値が生成され
るため、テーブルを変更できませんでした。重複する値のあるフィールドの値を
変更するか、インデックスを削除してください。または重複する値を使用できる
ように再定義してください。

 また、ソフト終了後、DBは以下のようになっていました。
 ODDS_TANPUKUWAKU_HEAD:一件のデータのみ
 ODDS_TANPUKUWAKU:ODDS_TANPUKUWAKU_HEADで表示されている一件のデータと
同じキーでUmaban01~09の一件ずつ、合計9件のデータのみ

 尚、JVOpenはJVRTOpenに、dataspecはYYYYMMDDJJRR、keyは0B42、JVGetsはO1
で取得、DBはコード変更後に再作成しており、こちらは問題ないと考えています

 DBにはあまり詳しくないので、JV-Data仕様書の「時系列オッズを使用する場
合のみキーとして設定」の解釈を間違えてるのだと思います。

 単勝の時系列オッズをDBに入力したい場合はどうすればよろしいでしょうか
。よろしくお願いいたします。

タイトルRe: DBに単勝の時系列オッズを入力したい
記事No5169
投稿日: 2022/10/17(Mon) 21:51
投稿者Tachyon
おそらく「オッズ_単複(ODDS_TANPUKU)」テーブルのキー項目として「発表月日
時分(HappyoTime)」が不足しているため、キー重複が発生していると思われま
す。
キー項目の追加と登録クラスの修正が必要です。(JRA-VAN提供の登録クラスを
使用しているのであれば「clsImportO1.vb」を修正)

ご参考まで。

タイトルRe^2: DBに単勝の時系列オッズを入力したい
記事No5172
投稿日: 2022/10/20(Thu) 21:26
投稿者くるみ
 お返事ありがとうございます。
 キー項目の追加と登録クラスの修正を行ったところ、一度躓きましたが無事
にオッズを取得することができました。
 的確な回答をありがとうございました。

 後学として躓いたところを書きます。
 clsImportO1.vbを修正する際に、単勝の時系列オッズを入手しようとしてい
た関係で、「ヘッダ部分」と「ODDS_TANPUKU (オッズ_単複)」にHappyoTimeを追
加していましたが、これでは以前と同じエラーがでてしまいました。エラーを調
べたところ、同時に処理される「ODDS_WAKU (オッズ_枠連)」にもHappyoTimeを
追加しなければいけないことがわかりました。そこでその処理を行ったところ問
題なく入力をすることができました。

ウィンドウを閉じる