全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5445
推到 Plurk!
推到 Facebook!

ADO如何避免一直重複新增資料?

缺席
paul75919
一般會員


發表:4
回覆:2
積分:1
註冊:2011-09-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-09-28 17:05:54 IP:60.251.xxx.xxx 訂閱
各位大家好 小弟從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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-09-28 19:56:51 IP:111.249.xxx.xxx 訂閱
Timer事件開始的時候沒關Timer?
編輯記錄
GrandRURU 重新編輯於 2011-09-28 18:22:07, 註解 無‧
paul75919
一般會員


發表:4
回覆:2
積分:1
註冊:2011-09-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-09-28 22:31:15 IP:59.115.xxx.xxx 訂閱
GrandRURU您好:您是說在哪邊設定關掉?
while裡面嗎?
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-09-29 08:29:43 IP:59.120.xxx.xxx 訂閱
因為你的While迴圈看起來會處理很久,所以可能會是Timer重啟造成的問題
所謂的Timer關閉看起來大概是這樣:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  Timer1->Enabled = false;
.
.
.
  Timer1->Enabled = true;
}
paul75919
一般會員


發表:4
回覆:2
積分:1
註冊:2011-09-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-09-29 12:42:22 IP:60.251.xxx.xxx 訂閱
不是耶~似乎不是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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-09-29 17:19:13 IP:59.120.xxx.xxx 訂閱
那可能要請你提供更多的資訊給達人們回答囉
系統時間:2024-11-21 17:16:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!