JV-Link 質問箱 |
タイトル | : DIFFをDIFNに変更したがUMのフォーマット画が不明 |
記事No | : 7314 |
投稿日 | : 2023/08/15(Tue) 00:55 |
投稿者 | : がる |
|
4.9.0にアップデートし、DIFFが8/7のデータまでしか提供していないため、新し いDIFNに変更しましたが、そこで落ちてくるUMのフォーマットに変更があり、 これまでサンプル提供されていたものをもとにしたスクリプト retval = JVLink1.JVRead(buff, 400000, filename) If Left(buff, 2) = "UM" Then Call SetData_UM(buff, mUmData) On Error GoTo Err_Exist rs.AddNew rs.Fields("KettoNo") = mUmData.KettoNum rs.Fields("DelKubun") = mUmData.DelKubun rs.Fields("Bamei") = mUmData.Bamei rs.Fields("SEXCD") = mUmData.SexCD rs.Fields("KeiroCD") = mUmData.KeiroCD rs.Fields("Sire") = mUmData.Ketto3Info(0).Bamei rs.Fields("Dam") = mUmData.Ketto3Info(1).Bamei rs.Fields("BMS") = mUmData.Ketto3Info(4).Bamei rs.Fields("EW") = mUmData.TozaiCD rs.Fields("Stable") = mUmData.ChokyosiRyakusyo rs.Fields("chaku_1") = mUmData.ChakuSogo.Chakukai su(0) rs.Fields("chaku_2") = mUmData.ChakuSogo.Chakukai su(1) rs.Fields("chaku_3") = mUmData.ChakuSogo.Chakukai su(2) rs.Fields("chaku_4") = mUmData.ChakuSogo.Chakukai su(3) rs.Fields("chaku_5") = mUmData.ChakuSogo.Chakukai su(4) rs.Fields("chaku_out") = mUmData.ChakuSogo.Chakuk aisu(5) rs.Fields("Prize") = mUmData.RuikeiHonsyoHeiti rs.Fields("MKDateY") = mUmData.head.MakeDate.Year rs.Fields("MKDateM") = mUmData.head.MakeDate.Mont h rs.Fields("MKDateD") = mUmData.head.MakeDate.Day rs.Update Err_Exist: では、新しいUMのデータが思ったとおりに落ちてきません。 13.競走馬マスタの項目を見ても、たとえば父馬の名前を従前では、mUmData.Ke tto3Info(0).Bameiでは引っ張ってこれますが、新UMでは「72ステイゴールド」 のようになってしまいます。従前どおりデータを引っ張るためにデータフィール ド名はどこに記述されていますでしょうか? SDKに付属のドキュメントではわかりませんでした。 ご教示いただけませんでしょうか。 |
|
タイトル | : Re: DIFFをDIFNに変更したがUMのフォーマット画が不明 |
記事No | : 7315 |
投稿日 | : 2023/08/15(Tue) 15:38 |
投稿者 | : JRA-VANソフトサポート |
|
JRA-VANソフトサポート 吉本です。 DataLab.サービスをご利用頂きまして誠にありがとうございます。
競走馬マスタ(UM)は、繁殖登録番号、生産者コード、生産者名の桁数が 拡張されております。
記載頂いたソースを拝見させて頂きましたところ、 過去にサンプル提供していたソースを参考にされているかと存じます。
そうであれば、SetData_UMメソッド内に以下の変数名が定義されているかと 思われますので、以下に記載している数値の通りIncMidメソッド内の 読込サイズを変更いただければ正常に読み込まれると存じます。
■変数名と変更数値 HansyokuNum :8 →10 BreederCode :6 →8 BreederName :70 →72
以上、よろしくお願い致します。 |
|
タイトル | : Re^2: DIFFをDIFNに変更したがUMのフォーマット画が不明 |
記事No | : 7316 |
投稿日 | : 2023/08/15(Tue) 16:11 |
投稿者 | : がる |
|
おっしゃるとおり、古いサンプルを流用して作成しております。 ソース全文を以下に貼りますが(コメントはサンプルのままになっていたりし ます) 当該のメソッドの記述等ございません。
桁数拡張でズレているものだということは理解できました。
もう少し新しそうなサンプルなどございましたら、そちらを見てみたいと思い ます。
Option Compare Database
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMillisecond s As Long)
'「JVLink」ボタンを押した処理 Private Sub cmdSetProperties_Click() On Error GoTo Err_cmdSetProperties_Click Dim retval As Long 'JVLink設定画面表示 retval = JVLink1.JVSetUIProperties If retval <> 0 Then MsgBox "JVSetUIPropertiesでエラーが発生しました(" &am p; retval & ")" Exit Sub End If
Exit_cmdSetProperties_Click: Exit Sub
Err_cmdSetProperties_Click: MsgBox Err.Description Resume Exit_cmdSetProperties_Click End Sub
'「取り込み」ボタンを押した処理 Private Sub cmdStart_Click() On Error GoTo Err_cmdStart_Click Dim retavl As Long Dim readcount As Long Dim dlcount As Long Dim lastfiletimestamp As String Dim status As Long Dim buff As String Dim filename As String Dim rs As DAO.Recordset 'JVLinkを初期化 Call JVLink1.JVInit("ACCESS2KSAMPLE") '蓄積系データのRACEを20040101000000以降について取り込み呼び出 し retval = JVLink1.JVOpen("DIFN", "20230807000000" ;, 1, readcount, dlcount, lastfiletimestamp) 'retval = JVLink1.JVOpen("DIFF", "2023010100000 0", 1, readcount, dlcount, lastfiletimestamp) 'retval = JVLink1.JVOpen("DIFF", "2023010100000 0", 1, readcount, dlcount, lastfiletimestamp) If retval < 0 Then MsgBox "JVOPENでエラーが発生しました(" & retval & amp; ")" Exit Sub End If Dim mUmData As JV_UM_UMA status = 0 While status <> dlcount status = JVLink1.JVStatus StatusText.Value = dlcount & "ファイル中 " & status & " ファイルダウンロード完了" DoEvents Sleep (120) Wend Dim i As Long i = 0 retval = 1 MsgBox "データをクリアします" CurrentDb.Execute ("DELETE FROM UM") ' Me.sub_RA.Requery DoEvents Set rs = CurrentDb.OpenRecordset("UM") While retval <> 0 'JVOpenで指定したデータを1レコードずつ取り込み retval = JVLink1.JVRead(buff, 400000, filename) If Left(buff, 2) = "UM" Then 'JVData構造体にRAのレコードをセットする Call SetData_UM(buff, mUmData) 'RA_Sampleテーブルにデータを書き込む On Error GoTo Err_Exist rs.AddNew rs.Fields("KettoNo") = mUmData.KettoNum rs.Fields("DelKubun") = mUmData.DelKubun rs.Fields("Bamei") = mUmData.Bamei rs.Fields("SEXCD") = mUmData.SexCD rs.Fields("KeiroCD") = mUmData.KeiroCD rs.Fields("Sire") = mUmData.Ketto3Info(0).Bamei rs.Fields("Dam") = mUmData.Ketto3Info(1).Bamei rs.Fields("BMS") = mUmData.Ketto3Info(4).Bamei rs.Fields("EW") = mUmData.TozaiCD rs.Fields("Stable") = mUmData.ChokyosiRyakusyo rs.Fields("chaku_1") = mUmData.ChakuSogo.Chakukai su(0) rs.Fields("chaku_2") = mUmData.ChakuSogo.Chakukai su(1) rs.Fields("chaku_3") = mUmData.ChakuSogo.Chakukai su(2) rs.Fields("chaku_4") = mUmData.ChakuSogo.Chakukai su(3) rs.Fields("chaku_5") = mUmData.ChakuSogo.Chakukai su(4) rs.Fields("chaku_out") = mUmData.ChakuSogo.Chakuk aisu(5) rs.Fields("Prize") = mUmData.RuikeiHonsyoHeiti rs.Fields("MKDateY") = mUmData.head.MakeDate.Year rs.Fields("MKDateM") = mUmData.head.MakeDate.Mont h rs.Fields("MKDateD") = mUmData.head.MakeDate.Day rs.Update Err_Exist: '必要に応じてデータ更新処理を記述して下さい。 On Error GoTo Err_cmdStart_Click i = i + 1 End If Wend rs.Close Set rs = Nothing '一通り読み込みが終わった後はJVCloseを行う JVLink1.JVClose ' Me.sub_RA.Requery MsgBox "END"
Exit_cmdStart_Click: Exit Sub
Err_cmdStart_Click: MsgBox Err.Description Resume Exit_cmdStart_Click End Sub
Private Sub 詳細_Click()
End Sub |
|
タイトル | : Re^3: DIFFをDIFNに変更したがUMのフォーマット画が不明 |
記事No | : 7317 |
投稿日 | : 2023/08/15(Tue) 17:34 |
投稿者 | : がる |
|
標準モジュールとして提供されているものの中を変更する必要があるわけですか 。
こちらの最新版は提供されているのでしょうか? |
|
タイトル | : Re^2: DIFFをDIFNに変更したがUMのフォーマット画が不明 |
記事No | : 7318 |
投稿日 | : 2023/08/15(Tue) 17:39 |
投稿者 | : がる |
|
標準モジュールのこちらの変更ということですね。
'****** 11.競走馬マスタ *********************************** *****
Public Sub SetData_UM(ByVal lBuf As String, ByRef mBuf As JV_UM_UMA ) Dim bytBuf() As Byte '' Byte列 で処理するためのバッファ Dim i As Integer '' ループ カウンタ Dim j As Integer '' ループ カウンタ Dim k As Integer '' ループ カウンタ Dim p As Long '' 切り分 け開始位置 bytBuf = StrConv(lBuf, vbFromUnicode) p = 1 With mBuf With .head .RecordSpec = IncMid(bytBuf, p, 2) '' レコー ド種別 .DataKubun = IncMid(bytBuf, p, 1) '' データ 区分 With .MakeDate .Year = IncMid(bytBuf, p, 4) '' 年 .Month = IncMid(bytBuf, p, 2) '' 月 .Day = IncMid(bytBuf, p, 2) '' 日 End With ' MakeDate End With ' head .KettoNum = IncMid(bytBuf, p, 10) '' 血統登 録番号 .DelKubun = IncMid(bytBuf, p, 1) '' 競走馬 抹消区分 With .RegDate .Year = IncMid(bytBuf, p, 4) '' 年 .Month = IncMid(bytBuf, p, 2) '' 月 .Day = IncMid(bytBuf, p, 2) '' 日 End With ' RegDate With .DelDate .Year = IncMid(bytBuf, p, 4) '' 年 .Month = IncMid(bytBuf, p, 2) '' 月 .Day = IncMid(bytBuf, p, 2) '' 日 End With ' DelDate With .BirthDate .Year = IncMid(bytBuf, p, 4) '' 年 .Month = IncMid(bytBuf, p, 2) '' 月 .Day = IncMid(bytBuf, p, 2) '' 日 End With ' BirthDate .Bamei = IncMid(bytBuf, p, 36) '' 馬名 .BameiKana = IncMid(bytBuf, p, 36) '' 馬名半 角カナ .BameiEng = IncMid(bytBuf, p, 80) '' 馬名欧 字 .UmaKigoCD = IncMid(bytBuf, p, 2) '' 馬記号 コード .SexCD = IncMid(bytBuf, p, 1) '' 性別コ ード .HinsyuCD = IncMid(bytBuf, p, 1) '' 品種コ ード .KeiroCD = IncMid(bytBuf, p, 2) '' 毛色コ ード For i = 0 To 13 With .Ketto3Info(i) .HansyokuNum = IncMid(bytBuf, p, 8) '' 繁殖登 録番号 .Bamei = IncMid(bytBuf, p, 36) '' 馬名 End With ' Ketto3Info Next i .TozaiCD = IncMid(bytBuf, p, 1) '' 東西所 属コード .ChokyosiCode = IncMid(bytBuf, p, 5) '' 調教師 コード .ChokyosiRyakusyo = IncMid(bytBuf, p, 8) '' 調教師 名略称 .Syotai = IncMid(bytBuf, p, 20) '' 招待地 域名 .BreederCode = IncMid(bytBuf, p, 6) '' 生産者 コード .BreederName = IncMid(bytBuf, p, 70) '' 生産者 名 .SanchiName = IncMid(bytBuf, p, 20) '' 産地名 .BanusiCode = IncMid(bytBuf, p, 6) '' 馬主コ ード .BanusiName = IncMid(bytBuf, p, 64) '' 馬主名 .RuikeiHonsyoHeiti = IncMid(bytBuf, p, 9) '' 平地本 賞金累計 .RuikeiHonsyoSyogai = IncMid(bytBuf, p, 9) '' 障害本 賞金累計 .RuikeiFukaHeichi = IncMid(bytBuf, p, 9) '' 平地付 加賞金累計 .RuikeiFukaSyogai = IncMid(bytBuf, p, 9) '' 障害付 加賞金累計 .RuikeiSyutokuHeichi = IncMid(bytBuf, p, 9) '' 平地収 得賞金累計 .RuikeiSyutokuSyogai = IncMid(bytBuf, p, 9) '' 障害収 得賞金累計 With .ChakuSogo For j = 0 To 5 .Chakukaisu(j) = IncMid(bytBuf, p, 3) Next j End With ' ChakuSogo With .ChakuChuo For j = 0 To 5 .Chakukaisu(j) = IncMid(bytBuf, p, 3) Next j End With ' ChakuChuo For i = 0 To 6 With .ChakuKaisuBa(i) For j = 0 To 5 .Chakukaisu(j) = IncMid(bytBuf, p, 3) Next j End With ' ChakuKaisuBa Next i For i = 0 To 11 With .ChakuKaisuJyotai(i) For j = 0 To 5 .Chakukaisu(j) = IncMid(bytBuf, p, 3) Next j End With ' ChakuKaisuJyotai Next i For i = 0 To 5 With .ChakuKaisuKyori(i) For j = 0 To 5 .Chakukaisu(j) = IncMid(bytBuf, p, 3) Next j End With ' ChakuKaisuKyoriu Next i For i = 0 To 3 .Kyakusitu(i) = IncMid(bytBuf, p, 3) '' 脚質傾 向 Next i .RaceCount = IncMid(bytBuf, p, 3) '' 登録レ ース数 .crlf = IncMid(bytBuf, p, 2) '' レコー ド区切り End With
'バッファ領域解放 Erase bytBuf End Sub |
|
タイトル | : Re^3: DIFFをDIFNに変更したがUMのフォーマット画が不明 |
記事No | : 7319 |
投稿日 | : 2023/08/15(Tue) 18:48 |
投稿者 | : サメの餌 |
|
がるさん、こんばんは。
> For i = 0 To 13 > With .Ketto3Info(i) > .HansyokuNum = IncMid(bytBuf, p, 8) '' 繁殖登 > 録番号 > .Bamei = IncMid(bytBuf, p, 36) '' 馬名 > End With ' Ketto3Info > Next i
このループ内の繁殖登録番号が8桁になってるのを10桁に修正。
> .BreederCode = IncMid(bytBuf, p, 6) '' 生産者 > コード
生産者コードが6桁になっているのを8桁に修正。
> .BreederName = IncMid(bytBuf, p, 70) '' 生産者 > 名
生産者名が70桁になっているのを72桁に修正。
競走馬マスタの変更点はそんな感じだと思います。ただ、他にも変更点はあり ますので、お使いのデータによりますが変更点をSDKのJV-Data仕様書で黄色くな っている部分を確認するとよろしいかと思います。 |
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|