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

請問DBGrid中,想知道某一欄位下所有的值,並將之刪除

答題得分者是:tech_state

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-14 02:17:25 IP:218.163.xxx.xxx 未訂閱
ex data1 A // 若有 A 則將資料丟進來 B C // 若輸入 D 則這筆資料不予理會 E 不知道該怎麼把這一欄的資料抓出來 並不是用 select data1 from table1 SQL 語法 因為小弟想抓出裡面的資料進行比對動作 我剛剛在想是否有類似StringGrid->cells[i][j]的做法 不過去查了 help 後,好像這只有 StringGrid 有 小弟的概念是這樣,我想讓這一欄位資料為比對的值,有則輸入這筆資料。 不知道 SQL 語法搭配什麼或者是 DBGrid 的功能中 有什麼比較好的方法可用能夠完成比對的構想。 感謝回答 發表人 - 流 於 2003/08/15 21:29:45
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-14 10:53:30 IP:61.220.xxx.xxx 未訂閱
流, 您好 根據您的需求我想到一個方法, 就是用Locate, 但是Locate也是整個資料庫一筆一筆的尋找, 而且其速度並不會比下SQL語法快。 如果您想試試Locate的方法可以參考bruce0211版主的專欄, 其那有一篇[心得分享系列]文章, 有提到Locate的使用方法。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-14 13:14:55 IP:211.23.xxx.xxx 未訂閱
tech_state您好: 小弟有去看了bruce0211前輩的心得,不過小弟看不大懂 Table1->Locate(“欲搜尋之欄位名稱”, 搜尋值, TLocateOptions() << loPartialKey); 除了看不懂外,就是不曉得是否能有比對功用,指令該怎麼下 查了 help 中 TIBTable.Locate 有單值跟多值的介紹 不過不懂後續的動作是什麼...請前輩指導 我還有想到一個 idea ,不過是透過元件的方式 如果能成功的話,再跟大家分享... 謝謝回答
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-14 14:26:26 IP:61.220.xxx.xxx 未訂閱
流, 您好 範例: Table1->Locate(“欲搜尋之欄位名稱”, 搜尋值, TLocateOptions() << loPartialKey);
您的程式:
bool TF = Table->Locate("data1", "A", TLocateOptions() << loPartialKey);
if(TF == true)
   ShowMessage("找到了!!");
else
   ShowMessage("找不到!!");
================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-15 21:27:47 IP:218.163.xxx.xxx 未訂閱
謝謝,感謝您的回答 bool TF = Table->Locate("data1", "A", TLocateOptions() << loPartialKey); 經過測試後發現 "A" 可為宣告的字串變數,而非固定的 不過又碰上一個問題,搜索到後想刪除那筆資料 == == == A a1 a2 B b1 b2 // if 找到 B 後, C c1 c2 以 Locate 比對後若是找到,不知道該如何刪除 因為我找到後除了繼續放進那筆資料外,"A" 是比對的 所以比對好後得繼續將完整資料給補上 但是如果比對是為了刪除整筆資料,如上圖所示 比對到了 B 後,該怎麼刪除 B 那一列的所有資料讓 C 往上跳 抱歉,因為忽然又發現程式中需要這一個功能 而 Help 中小弟沒有找到方法,希望前輩再指點
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-15 22:54:17 IP:203.204.xxx.xxx 未訂閱
流, 您好 請試試以下的code,應該可以符合您的需求。  
bool TF = Table->Locate("data1", "A", TLocateOptions() << loPartialKey);
if(TF == true)
   Table1->Delete();
else
   ShowMessage("找不到!!");
 
================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之

中階會員


發表:36
回覆:142
積分:70
註冊:2003-07-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-18 10:05:30 IP:211.23.xxx.xxx 未訂閱
謝謝前輩的回答 這幾天因為都在看資料而沒實際上機測試 回覆與給分晚了還請見諒 感謝
系統時間:2024-05-07 0:43:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!