線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:825
推到 Plurk!
推到 Facebook!

Table & Access2000 連續寫入問題

缺席
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-13 16:49:19 IP:220.130.xxx.xxx 未訂閱
請問各位:    db => access 2003,用ODBC    我用一迴圈連續寫9筆資料到table中,每次寫完6筆後,就cpu使用率到100%...後面的都無法寫入. 下列為我寫db的程式  
   if(!DBBuffer.empty())
   {
      ShowMessage("GPS no save to DB " IntToStr(DBBuffer.size()));
      AnsiString DAY;
      vector::iterator Ptr = DBBuffer.begin();
      unsigned int Total = DBBuffer.size();
      
      for(unsigned int i=0;iDate 4,2) "/" AnsiString(Ptr->Date 2,2) "/" AnsiString(Ptr->Date,2) " ";
         DAY  = AnsiString(Ptr->Time,2) ":" AnsiString(Ptr->Time 2,2) ":" AnsiString(Ptr->Time 4,2);             Form1->TableGPS->Append();
         //ShowMessage("Setp1");
         Form1->TableGPS->FieldByName("Unit_id")->AsString = AnsiString((char*)Ptr->ID,Max_ID/2);
         //ShowMessage("Setp2");
         Form1->TableGPS->FieldByName("DateTime")->AsDateTime = IncHour(StrToDateTime(DAY),8);
         //ShowMessage("Setp3");
         Form1->TableGPS->FieldByName("WGS_LON")->AsFloat = StrToFloat(AnsiString(Ptr->WGS_LON,sizeof(Ptr->WGS_LON)))/100;
         //ShowMessage("Setp4");
         Form1->TableGPS->FieldByName("WGS_LAT")->AsFloat = StrToFloat(AnsiString(Ptr->WGS_LAT,sizeof(Ptr->WGS_LAT)))/100;
         //ShowMessage("Setp5");
         Form1->TableGPS->FieldByName("Heading")->AsInteger = StrToCurr(AnsiString(Ptr->Heading,sizeof(Ptr->Heading)));
         //ShowMessage("Setp6");
         Form1->TableGPS->FieldByName("Speed")->AsFloat = StrToFloat(AnsiString(Ptr->Speed,sizeof(Ptr->Speed)))*1.853;
         //ShowMessage("Setp7");
         Form1->TableGPS->FieldByName("Sat#")->AsInteger = (StrToIntDef(AnsiString(Ptr->Sat,sizeof(Ptr->Sat)),0) >= 9)?9:StrToIntDef(AnsiString(Ptr->Sat,sizeof(Ptr->Sat)),0);
         //ShowMessage("Setp8");
         Form1->TableGPS->FieldByName("IO1")->AsString = AnsiString(Ptr->IO1);
         //ShowMessage("Setp9");
         Form1->TableGPS->FieldByName("IO2")->AsString = AnsiString(Ptr->IO2);
         //ShowMessage("Setp10");
         Form1->TableGPS->FieldByName("IO3")->AsString = AnsiString(Ptr->IO3);
         //ShowMessage("Setp11");
         Form1->TableGPS->FieldByName("Data_type")->AsString = AnsiString(Ptr->Type);
         //ShowMessage("Setp12");
         Form1->TableGPS->Post();
         //ShowMessage("Setp13");             //DBBuffer.erase(Ptr);
         //ShowMessage("Setp14");
         Ptr  ;
         ShowMessage(IntToStr(i));
      }
      DBBuffer.clear();
   } 
發表人 - kenbcb 於 2004/12/13 17:12:41
系統時間:2024-05-19 3:10:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!