🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.database.ado
Article #3859

It is too many slow...

#3859
From: M. Noroozi Eghbali
Date: Sat, 08 Jun 2002 15:00
81 lines
4159 bytes
Hi,

I am using an ADOTable and a DataSource (Microsoft.Jet.OLEDB.4.0) to save my
database in an Access file. It has about 25 fields and none of them are
indexed. The number of records is about 60000. When I start the saving to
the Access file, in the first second about 100 records were saved. The
saving speed gradually decreases inasmuch as after 15000 records the saving
speed reaches to maximum 1 record per second. I wrote the code of the saving
function here. please tell me what is the wrong.

Regards,
Mehrdad

void __fastcall TForm1::Save(TTreeNode *Node)
{
 typedef CNodeData* PNodeData;
     TTreeNode *ChildNode;

 do
     {
      DataModule1->ADOTable1->Append();
          DataModule1->ADOTable1->FieldByName("Level")->AsInteger =
Node->Level;
          DataModule1->ADOTable1->FieldByName("Term")->AsString =
Node->Text;
          DataModule1->ADOTable1->FieldByName("BT")->AsString =
PNodeData(Node->Data)->BT;
          DataModule1->ADOTable1->FieldByName("NT")->AsString =
PNodeData(Node->Data)->NT;
          DataModule1->ADOTable1->FieldByName("RT")->AsString =
PNodeData(Node->Data)->RT;
          DataModule1->ADOTable1->FieldByName("SN")->AsString =
PNodeData(Node->Data)->SN;
          DataModule1->ADOTable1->FieldByName("UF")->AsString =
PNodeData(Node->Data)->UF;
          DataModule1->ADOTable1->FieldByName("Translate1")->AsString =
PNodeData(Node->Data)->Translate1;
          DataModule1->ADOTable1->FieldByName("Translate2")->AsString =
PNodeData(Node->Data)->Translate2;
          DataModule1->ADOTable1->FieldByName("Translate3")->AsString =
PNodeData(Node->Data)->Translate3;
          DataModule1->ADOTable1->FieldByName("Hide")->AsBoolean =
PNodeData(Node->Data)->Hide;
          DataModule1->ADOTable1->FieldByName("Status")->AsInteger =
PNodeData(Node->Data)->Status;
          DataModule1->ADOTable1->FieldByName("InputDate")->AsString =
PNodeData(Node->Data)->InputDate;
          DataModule1->ADOTable1->FieldByName("ApprovalDate")->AsString =
PNodeData(Node->Data)->ApprovalDate;
          DataModule1->ADOTable1->FieldByName("LastUpdate")->AsString =
PNodeData(Node->Data)->LastUpdate;
          DataModule1->ADOTable1->FieldByName("NotValidDate")->AsString =
PNodeData(Node->Data)->NotValidDate;
          DataModule1->ADOTable1->FieldByName("ABB")->AsString =
PNodeData(Node->Data)->ABB;
          DataModule1->ADOTable1->FieldByName("SC")->AsString =
PNodeData(Node->Data)->SC;
  DataModule1->ADOTable1->FieldByName("HN")->AsString =
PNodeData(Node->Data)->HN;
  DataModule1->ADOTable1->FieldByName("SF")->AsString =
PNodeData(Node->Data)->SF;
  DataModule1->ADOTable1->FieldByName("CA")->AsString =
PNodeData(Node->Data)->CA;
  DataModule1->ADOTable1->FieldByName("EC")->AsString =
PNodeData(Node->Data)->EC;
  if(PNodeData(Node->Data)->Frequency.IsEmpty())
           DataModule1->ADOTable1->FieldByName("Frequency")->AsInteger = 0;
          else
           DataModule1->ADOTable1->FieldByName("Frequency")->AsInteger =
StrToInt(PNodeData(Node->Data)->Frequency);
          DataModule1->ADOTable1->FieldByName("Description")->AsString =
PNodeData(Node->Data)->Description;

          DataModule1->ADOTable1->Post();

...
//Some codes to obtain next record from memory.
...

     }while(Node);
}
Technical Details
Message-ID: <3d021be7_2@dnews>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news1.google.com!sn-xit-02!sn-xit-08!supernews.com!iad-peer.news.verio.net!news.verio.net!newsfeed.wirehub.nl!PeerFeed.KWeb.on.ca!dnews

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 10698b,856e9c01d3c42b29,start
X-Google-Attributes: gid10698b,public
X-Google-ArrivalTime: 2002-06-08 08:08:53 PST
From: "M. Noroozi Eghbali" <galaxy@irandoc.ac.ir>
Newsgroups: borland.public.cppbuilder.database.ado
Subject: It is too many slow...
Date: Sat, 8 Jun 2002 19:30:47 +0430
Lines: 83
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
NNTP-Posting-Host: 213.176.21.5
Message-ID: <3d021be7_2@dnews>
X-Trace: dnews 1023548391 213.176.21.5 (8 Jun 2002 07:59:51 -0700)
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news1.google.com!sn-xit-02!sn-xit-08!supernews.com!iad-peer.news.verio.net!news.verio.net!newsfeed.wirehub.nl!PeerFeed.KWeb.on.ca!dnews