アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めまして。
早速質問なのですが、VB(6.0)でmdb(Access2000)のDBを更新する処理を作りました。
DAOを用いて(初めて使います)以下のような構文を作ったのですが、
性能がぱっとしません。
何か下記のソースをいじることで性能が改善するような手立てはありませんでしょうか?

----------------------------------------------------------------------
Sub Main()
     Dim cDaoDB    As DAO.Database
     Dim cDaoWS    As Workspace
     Dim cColUpdate  As Collection
     Dim varColItem  As Variant
     Dim lngCnt    As Long

     Set cDaoWS = DBEngine.Workspaces(0)
     Set cDaoDB = mDaoWS.OpenDatabase("C:\TEST.mdb")

     'コレクションにデータをaddする処理は省略しています
     cColUpdate.add
     
     With cDaoDB
          cDaoWS.BeginTrans
          'cColUpdateコレクションには10万件ほどのSQL構文(Update構文)が格納されています
          '10万回ほど繰り返し処理します
          For Each varColItem In cColUpdate
               lngCnt = lngCnt + 1
               If lngCnt > 1000 Then
                    'データ量が多いため1000件ごとにコミットしています
                    cDaoWS.CommitTrans
                    cDaoWS.BeginTrans
                    lngCnt = 0
               End If
               strErrSQL = varColItem
               'Update処理が繰り返し流れます。
               .Execute varColItem
          Next
          .Close
          cDaoWS.Close
     End With
     Set cDaoDB = Nothing
     Set cDaoWS = Nothing
End Sub
----------------------------------------------------------------------
よろしくお願いします。

A 回答 (1件)

どのような更新がやりたいのか良く判りませんが、10万回もSQLを繰り返せば当然遅いはずです。

一つのSQLで不可能であれば、数個のSQLで処理できないのでしょうか。対象テーブルの構造や、更新の内容を提示すれば、それなりの回答がでるかと考えます。
    • good
    • 0
この回答へのお礼

SQLの方を変更することになりました。
回答ありがとうざいました。

お礼日時:2007/02/28 18:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A