ADOQuery+Locate +FilterRecord判斷資料是否存在~ |
缺席
|
ldd
一般會員 發表:12 回覆:62 積分:19 註冊:2004-07-06 發送簡訊給我 |
各位前輩~
我一個Sample的Table,欄位如下 ID Name Source --------------------------- 11 Test1 20 12 Test2 30 因為 ID與Name不可以重複,所以我想要用Locate Filter來完成~但是當我想要新增 11 Test3 20或者 13 Test2 50 時,程式應該回報資料重複,但是一直還是可以新增~這代表Locate沒有找到資料,所以程式允許新增了~下面是我簡單的Code IsDataIExist Button Click TLocateOptions Opts; Opts.Clear(); Opts << loPartialKey; Variant locvalues[2]; locvalues[0] = Variant(Edit1->Text); locvalues[1] = Variant(Edit2->Text); ADOQuery1->Filtered = true; if(ADOQuery1->Locate("ID;Name", VarArrayOf(locvalues,1), Opts)) { ShowMessage("Found it!"); } else { ShowMessage("Not Found !"); } ADOQuery1->Filtered = false; //-------------------------------------------------------------------------------------------------- ADOQuery1FilterRecord Event String Temp = Trim(ADOQuery1->FieldByName("id")->AsString); String Temp2 = Trim(ADOQuery1->FieldByName("name")->AsString); if(Temp.AnsiCompare(Edit1->Text.Trim()) == 0 || Temp2.AnsiCompare(Edit2->Text.Trim()) == 0) { Accept = true; } else { Accept = false; } 還請各位前輩指點迷津,還是ADOQuery1FilterRecord 只能找到完全符合的資料,因為只有我輸入兩個值是一樣的時候才會回報資料已存在,如果其中一個欄位不同,就會回傳資料不存在.@.@ 如果這是filterRecord的限定我該用什麼替代~???感謝!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |