資料修改的問題 |
答題得分者是:careychen
|
kill42el
一般會員 ![]() ![]() 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
|
careychen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
那你的 where 條件式是用名字搜尋的嗎?
你在更新資料後,用來搜尋資料是用原本已經 open 好的 query 來搜尋的,還是用動態 sql 搜尋? 可能麻煩你對搜尋的那段動作或程式碼再說明一下比較清楚唷!! ===================引 用 kill42el 文 章=================== 你好 我想請問一下,當我查詢到一筆資料時,對這筆資料進行修改的動作 如:原本姓名 王小明,改成王大銘。 但是當我查詢王小明卻會去查到王大銘,而不會出現查無資料 這是修改的程式碼 [code cpp] void __fastcall TForm3::BitBtn12Click(TObject *Sender) { if (ADOTable2->State==dsEdit) { ADOTable2->Post(); }[/code]
------
價值的展現,來自於你用哪一個角度來看待它!! |
kill42el
一般會員 ![]() ![]() 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
你好
是的,搜尋關鍵是用 名字 搜尋的程式碼 [code c#] void __fastcall TForm3::BitBtn8Click(TObject *Sender) { bool Found ; ADOTable2->TableName = "基本資料"; ADOTable2->Close(); if(!ADOTable2->Active) { ADOTable2->Open(); } TLocateOptions SearchOptions ; SearchOptions << loPartialKey ; Found = ADOTable2->Locate("Name", Edit2->Text, SearchOptions); if (Found != true) ShowMessage("找不到資料") ; } [/code] ===================引 用 careychen 文 章=================== 那你的 where 條件式是用名字搜尋的嗎? 你在更新資料後,用來搜尋資料是用原本已經 open 好的 query 來搜尋的,還是用動態 sql 搜尋? 可能麻煩你對搜尋的那段動作或程式碼再說明一下比較清楚唷!! |
careychen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
ADOTable2->Close();
if(!ADOTable2->Active) { ADOTable2->Open(); } 上面這段可以直接改成 ADOTable2->Close(); ADOTable2->Open(); 根據你的問題,想先確認一下,你在編完資料有先按 bitbtn2 儲存 然後再按下 bitbtn8 來查嗎? 建議你 bitbtn8 的寫法改用 ADOQuery 來進行查詢,不然當你的 table 資料一多時 你這樣的寫法會把 server 的資料全讀回來,只是為了找個人, 你可以用 ADOQuery 直接下命令拉出你要的人即可 ===================引 用 kill42el 文 章=================== 你好 是的,搜尋關鍵是用 名字 搜尋的程式碼 [code c#] void __fastcall TForm3::BitBtn8Click(TObject *Sender) { bool Found ; ADOTable2->TableName = "基本資料"; ADOTable2->Close(); if(!ADOTable2->Active) { ADOTable2->Open(); } TLocateOptions SearchOptions ; SearchOptions << loPartialKey ; Found = ADOTable2->Locate("Name", Edit2->Text, SearchOptions); if (Found != true) ShowMessage("找不到資料") ; } [/code]
------
價值的展現,來自於你用哪一個角度來看待它!! |
kill42el
一般會員 ![]() ![]() 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
前輩謝謝,可以執行。
恩,是有先按 bitbtn2 儲存然後再按下 bitbtn8 來查 可以在請問一下,當我查尋不到資料時,會出現提示視窗 但是,當搜尋找不到時,都會出現一筆資料,要怎樣能讓 搜尋不到時,也不會出現資料 之前,也有想過要用 ADOQuery 來進行查詢,但是SQL的語法不會宣示 還是說,前輩願意教我呢? ===================引 用 careychen 文 章=================== ADOTable2->Close(); if(!ADOTable2->Active) { ADOTable2->Open(); } 上面這段可以直接改成 ADOTable2->Close(); ADOTable2->Open(); 根據你的問題,想先確認一下,你在編完資料有先按 bitbtn2 儲存 然後再按下 bitbtn8 來查嗎? 建議你 bitbtn8 的寫法改用 ADOQuery 來進行查詢,不然當你的 table 資料一多時 你這樣的寫法會把 server 的資料全讀回來,只是為了找個人, 你可以用 ADOQuery 直接下命令拉出你要的人即可 |
careychen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
教,不是問題,但利用版上的資源似乎不大對,GrandRURU 大有列了BCB的一些小書評,建議新手先來看看這一篇,
不知您是否有先看了呢? 先回答你這篇的內容 ADOQuery 可以使用 SQL 這個屬性來設定你要的 sql 語法 例如: ADOQuery->SQL->Text = "Select FieldA, FieldB from User where UserName='" Edit2->Text "'"; ADOQuery->Open(); if (!ADOQuery->Eof()) ShowMessage("找不到資料") ; ADOQuery->Close(); 可以使用如上的方式來搜尋 至於更多的用法,還是建議你翻翻書,翻書學的效率比上版面 PO 文的效率還快!! ===================引 用 kill42el 文 章=================== 前輩謝謝,可以執行。 恩,是有先按 bitbtn2 儲存然後再按下 bitbtn8 來查 可以在請問一下,當我查尋不到資料時,會出現提示視窗 但是,當搜尋找不到時,都會出現一筆資料,要怎樣能讓 搜尋不到時,也不會出現資料 之前,也有想過要用 ADOQuery 來進行查詢,但是SQL的語法不會宣示 還是說,前輩願意教我呢?
------
價值的展現,來自於你用哪一個角度來看待它!! |
kill42el
一般會員 ![]() ![]() 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
謝謝,前輩的指點
GrandRURU 前輩所列出的書籍,我能找到的,都有去翻閱 只是關於SQL的語法,目前還是懵懂,但是會繼續去看書學習 謝謝 ===================引 用 careychen 文 章=================== 教,不是問題,但利用版上的資源似乎不大對,GrandRURU 大有列了BCB的一些小書評,建議新手先來看看這一篇, 不知您是否有先看了呢? 先回答你這篇的內容 ADOQuery 可以使用 SQL 這個屬性來設定你要的 sql 語法 例如: ADOQuery->SQL->Text = "Select FieldA, FieldB from User where UserName='" Edit2->Text "'"; ADOQuery->Open(); if (!ADOQuery->Eof()) ShowMessage("找不到資料") ; ADOQuery->Close(); 可以使用如上的方式來搜尋 至於更多的用法,還是建議你翻翻書,翻書學的效率比上版面 PO 文的效率還快!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |