[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/01/20(Fri) 09:46
投稿者名:サクファ
Eメール:
URL :
タイトル:
ADOを使ってレコードの削除
はじめまして。質問があり、投稿させていただきました。

現在、VB6でADOを使いデータ収集を行うツールを作っているのですが、
定期的に不必要になったレコードを削除しようと思い以下の処理を作成しました。

    strStart = Format(DateAdd("d", -14, Now), "yyyy/mm/dd") & "
; 8:00:00"
    strEnd = Format(DateAdd("d", -7, Now), "yyyy/mm/dd") & " 8
:00:00"
    Rs.Filter = "日時" & " >= #" & strStart & "#&qu
ot; & " AND " & _
                "日時" & " <= #" & strEnd & "#"
;
    i = Rs.RecordCount
    For j = 1 To i
        Rs.Delete
        Rs.MoveNext
    Next
    Rs.Filter = adFilterNone

上記の処理でも問題なく削除はされるのですが、
削除の対象となるレコード数が10000件ぐらいにしてみると、
処理時間に数時間要してしまいます。

なにか回避策(処理の速度UP)はありますでしょうか?
お願いします。

投稿時間:2006/01/20(Fri) 10:09
投稿者名:KG
Eメール:
URL :
タイトル:
Re: ADOを使ってレコードの削除
SQL等でやってみてはいかがでしょうか?

DBにもよりますが、Insert文以外は速度UPが見込めるんじゃ
ないかなと思います。

投稿時間:2006/01/20(Fri) 10:46
投稿者名:サクファ
Eメール:
URL :
タイトル:
Re^2: ADOを使ってレコードの削除
返答ありがとうございます。

> SQL等でやってみてはいかがでしょうか?

MDBのファイルをSQLに変換するという意味でしょうか?

初心者なので間違っていたらすいません。

投稿時間:2006/01/20(Fri) 12:23
投稿者名:KG
Eメール:
URL :
タイトル:
Re^3: ADOを使ってレコードの削除
MDB.... Accessですかね?

ADODB.ConnectionのExecuteメソッドを調べてみてください。:)

投稿時間:2006/01/20(Fri) 13:53
投稿者名:サクファ
Eメール:
URL :
タイトル:
Re^4: ADOを使ってレコードの削除
> MDB.... Accessですかね?
>
> ADODB.ConnectionのExecuteメソッドを調べてみてください。:)

KGさん

Executeを使ったら数秒で処理が完了しました。
ご教授、ありがとうございました!