請問為何ADOQuery更新資料會有時間差 |
尚未結案
|
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
我有一程式如下:
ADOQuery1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Edit2->Text ";Persist Security Info=False";
ADOQuery2->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Edit2->Text ";Persist Security Info=False";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Append("Update AA SET Content=:NO1 where Build_year=2005 and Build_month=11 and Build_day=18 and Build_ID=1");
ADOQuery1->Parameters[0].Items[0]->Value=Edit1->Text;
ADOQuery1->ExecSQL(); ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Append("select * from AA where Build_year=2005 and Build_month=11 and Build_day=18 and Build_ID=1");
ADOQuery2->Open();
ADOQuery2->First();
while (!ADOQuery2->Eof)
{
ShowMessage(ADOQuery2->FieldByName("Content")->AsString);
ADOQuery2->Next();
} 其執行Update之後資料庫並沒有及時更新
其ADOQuery2的資料是舊的,而非最新的資料
若將ADOQuery2更改為ADOQuery1則不會
請問如何才能讓ADOQuery1執行Update之後及時更新資料 謝謝
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我有一程式如下: ADOQuery1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Edit2->Text+";Persist Security Info=False"; ADOQuery2->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Edit2->Text+";Persist Security Info=False"; ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Append("Update AA SET Content=:NO1 where Build_year=2005 and Build_month=11 and Build_day=18 and Build_ID=1"); ADOQuery1->Parameters[0].Items[0]->Value=Edit1->Text; ADOQuery1->ExecSQL(); ADOQuery2->Close(); ADOQuery2->SQL->Clear(); ADOQuery2->SQL->Append("select * from AA where Build_year=2005 and Build_month=11 and Build_day=18 and Build_ID=1"); ADOQuery2->Open(); ADOQuery2->First(); while (!ADOQuery2->Eof) { ShowMessage(ADOQuery2->FieldByName("Content")->AsString); ADOQuery2->Next(); } 其執行Update之後資料庫並沒有及時更新 其ADOQuery2的資料是舊的,而非最新的資料 若將ADOQuery2更改為ADOQuery1則不會 請問如何才能讓ADOQuery1執行Update之後及時更新資料 謝謝 shing.net 你好: (1)建議連結資料庫使用 ADOConnection 元件,修改資料用 ADOQuery 元件 (2)其流程大概會像以下這樣: ADOConnection1->Open(); AnsiString szSQLCmd="select * from..."; ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add(szSQLCmd); ADOQuery1->Open(); ADOQuery1->Append(); ADOQuery1->FieldByName(...); //...some fields... ADOQuery1->FieldByName(...); ADOConnection1->BeginTrans(); ADOConnection1->UpdateBatch(arAll); ADOConnection1->CommitTrans(); ADOQuery1->Close(); ADOConnection1->Close(); (3)在 KTOP 已經有很多這方面的範例程式碼,建議你參考看看-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
way888
初階會員 發表:32 回覆:76 積分:36 註冊:2005-05-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |