掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
アクセスの楽観的updateメソッドについて (ID:145347)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつもお世話になっております。 表題のとおり、updateメソッドについてなのですが、アクセスのa.mdbをデータソースとして、テーブルBに10000万レコード新規でインサートします。その際にテーブルBのデータセット・データテーブルに1000レコード貯めたら一気に挿入というロジックを考えて実践しましたが1000の倍数以外{ようは最後の残りレコード)例:1003 レコードなら残り3レコードが登録されないという減少に悩んでいます。updateを複数回行うともんだいがるのでしょうか?それともどこか根本的にまちがっているのか? ちなみに、updateをやめてループにしたら問題なく登録されています。 ご教示よろしくお願いします。 以下ソース 'データ読み込み Do Until READER.EndOfStream strrec = READER.ReadLine ret = InStr(strrec, "- -") ret2 = InStr(strrec, """") ipp = Trim(Mid(strrec, 1, ret - 1)) hiduke = Trim(Mid(strrec, ret + 5, 20)) accdate = convert_date(hiduke) nakami = Trim(Mid(strrec, ret2 + 1)) counter = counter + 1 Me.BackgroundWorker1.ReportProgress(counter) Call table1insert(ip, accdate, nakami) Call table2insert(ip, accdate, nakami) 'テーブル登録 If counter Mod 1000 = 0 Then Call t1update() End If Loop Sub table1insert(ByVal ip As String, ByVal accessdate As Date, ByVal url As String) On Error Resume Next Dim myROW As DataRow myROW = dt1.NewRow myROW("IP_ADDRESS") = ip myROW("ACCESS_DATE") = accessdate myROW("URL") = url dt1.Rows.Add(myROW) end sub Sub t1update() lblregist.Visible = True lblregist.Text = "table1 処理中" On Error Resume Next Dim ip As String Dim acdate As Date Dim url As String Dim i As Integer もとはda1.update(dt1)だったがうまくいかないのでループにした。 For i = 0 To dt1.Rows.Count - 1 ip = dt1.Rows(i)(0) acdate = dt1.Rows(i)(1) url = dt1.Rows(i)(2) da1.InsertQuery(ip, acdate, url) Next i ''実アップデート後テーブル行を削除 dt1.Rows.Clear() End Sub
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.