dataOptionの設定によって違う結果になる。

dataOptionの設定を4(セットアップデータ)と
1(通常データ)で、取得できるできないデータが
あったので、どうしても理由が分からずに質問します。

JVOpenでdataSpecを"RACE"設定し、dataOptionを4、
fromDateを"20250101000000"として
JVReadで取得データを読み込むと、
払戻データ(HRVM2025**99)の月毎データ件数が1件
のみ、それのみがデータベース登録できています。

その後、dataOptionを1にして(他は全く同じ)
再度実行すると払戻データも複数件きちんと取得できて
データベースにも登録できています。

原因が分からず途方に暮れており、質問いたしました。
これだけで情報が足りるかどうかわかりませんが、
理由がわかればご教授願います。

よろしくお願いいたします。

1件というのは1ファイルということでしょうか?
それであれば正常で、option=4(セットアップ)は先月分のデータを1ファイルにまとめていて、その中に1ヶ月分すべてのレコードが入っているはずです。

option=1(通常データ)は開催日ごとにファイルになっているので、セットアップに比べてファイル数が多くなると思います。

ファイル数ではなくレコード数ですね。

略式でコードを書くと以下の通りです。

dataSpec = ["RACE",];  //本来は他のデータ種別もあります
fromData = "20250101000000";
dataOption = 4;

foreach(var dataItem in dataSpec)
{
	code = _jvlink.JVOpen(dataItem, fromDate, dataOption, ref readCount, ref downloadCount, out lastFileTimeStamp);
    
    if(readCount > 0)
    {
		var returnCode = _jvlink.JVRead(out strData, out buffSize, out buffName);
        do
        {
        	switch(returnCode)
        	{
        	
        	}

        } while(true)
    }
    _jvlink.JVClose();
}

これを行なうと、
HR(VM20250199): 1件
JG(VM20250199):4547件
O1(VM20250199): 240件
RA(VM20250199): 505件
SE(VM20250199):6459件
のレコード件数DB登録されます。
1月の中央競馬レース数が240件なので
HR以外は取得できていると思っています。
(票数は取得しないのでSkipさせています)

takeshiさん、コメントありがとうございました。

そうなるとわからないですね。

HRもRAやSEと同じようにJVRead/JVGetsで1レコードずつ読み取れると思うので、誤ってJVSkipしているとかでしょうか?

ご存知かもしれませんが、データ検証ツールで当該ファイルのレコードは確認できるので、今データベースに登録できているデータと見比べてみてはどうでしょうか?

お手数をおかけしました。自己解決。

自分が悪かったです。

takeshiさんはじめ、みなさん申し訳ございませんでした。

「いいね!」 1