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

請問為何ADOQuery更新資料會有時間差

尚未結案
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-24 14:04:26 IP:140.122.xxx.xxx 未訂閱
我有一程式如下: 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-12-02 13:55:26 IP:202.3.xxx.xxx 未訂閱
引言: 我有一程式如下: 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-12-02 23:33:27 IP:220.137.xxx.xxx 未訂閱
shing.net您好: 請試試在 ADOQuery1->ExecSQL(); 這行後面加入如下: ADOQuery1->Refresh();
系統時間:2024-04-19 18:37:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!