ADO如何避免一直重複新增資料? |
缺席
|
paul75919
一般會員 發表:4 回覆:2 積分:1 註冊:2011-09-22 發送簡訊給我 |
各位大家好 小弟從sql server 抓資料丟到access中,但是不曉得為什麼會一直重複寫入到access中
下面是程式碼: int i = 1; while(!ADOQuery1->Eof) { vDate = ADOQuery1->FieldByName("vDate")->AsString; vTime = ADOQuery1->FieldByName("Time")->AsString; Name = ADOQuery1->FieldByName("Name")->AsString; EmployeeID = ADOQuery1->FieldByName("EmployeeID")->AsString; Location = ADOQuery1->FieldByName("Location")->AsString; Message = ADOQuery1->FieldByName("Message")->AsString; ADOConnection2->Close(); insertsql="INSERT INTO ReaderError(vDate,vTime,Name,EmployeeID,Location,Message) VALUES ('" vDate "','" vTime "','" Name "', '" EmployeeID "','" Location "','" Message "')"; ADOConnection2->ConnectionString = "FILE NAME=" ExtractFilePath(Application->ExeName) "DBurl.udl"; try{ ADOConnection2->Open(); ADO_Insert->Connection = ADOConnection2; ADO_Insert->CommandText = insertsql; ADOConnection2->BeginTrans(); ADO_Insert->Execute(); ADOConnection2->CommitTrans(); }catch(Exception &e) { ADOConnection2->RollbackTrans(); ADOConnection2->Close(); } Application->ProcessMessages(); ADOQuery1->Next(); i ; } ADOConnection1->Close(); ADOQuery1->Close(); 是insert的語法有問題嗎? 還是我把這段指令放在Timer 內的關係? 因為我要每秒都抓資料到ACCESS內...所以放到Timer內 不知道這樣哪裡還有問題? |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
paul75919
一般會員 發表:4 回覆:2 積分:1 註冊:2011-09-22 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
paul75919
一般會員 發表:4 回覆:2 積分:1 註冊:2011-09-22 發送簡訊給我 |
不是耶~似乎不是TIMER的問題,唉~快爆炸了XD
===================引 用 GrandRURU 文 章=================== 因為你的While迴圈看起來會處理很久,所以可能會是Timer重啟造成的問題 所謂的Timer關閉看起來大概是這樣: void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Enabled = false; . . . Timer1->Enabled = true; } |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |