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

ADOQuery+Locate +FilterRecord判斷資料是否存在~

缺席
ldd
一般會員


發表:12
回覆:62
積分:19
註冊:2004-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-01-12 00:05:34 IP:61.57.xxx.xxx 訂閱
    各位前輩~
我一個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的限定我該用什麼替代~???感謝!!
系統時間:2024-04-27 2:30:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!