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

locate

尚未結案
huangbh57
一般會員


發表:28
回覆:21
積分:9
註冊:2004-10-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-12 15:40:16 IP:218.247.xxx.xxx 未訂閱
大家好: delphi的clientdataset定位查詢Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions),其中keyvalues能否動態賦值,如keyvalues=VarArrayOf(['A','B']);中括號的字符和位數是可變的
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-12 16:00:36 IP:61.218.xxx.xxx 未訂閱
hi,huangbh57: 可以如下: A:='AAA'; B:='BBB'; keyvalues=VarArrayOf([A,B]); // 補充說明:VarArrayOf([A,B])裡的陣列個數需與你的KeyFields參數搭配 發表人 - change.jian 於 2004/10/12 16:17:28
huangbh57
一般會員


發表:28
回覆:21
積分:9
註冊:2004-10-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-12 16:16:17 IP:218.247.xxx.xxx 未訂閱
locate的KeyFields:='字段1;字段2;字段3;...',locate的KeyValues也能對應字段相應的變化
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-12 16:24:01 IP:61.218.xxx.xxx 未訂閱
這樣就要自己寫程式了,如下:    
procedure TfrmEditAncester.ToolButtonQueryClick(Sender: TObject);
var
  KeyFields:string;
  KeyValue:Variant;
  i:Integer;
  FcdTemp:TClientDataSet;
begin
  FcdTemp:=TClientDataSet.Create(Self);
  try
    //.....把要locate的欄位及內容放在FcdTemp裡
    if not FcdTemp.IsEmpty then
    begin
      KeyValue:=VarArrayCreate([0, FcdTemp.FieldCount-1], varVariant);
      KeyFields:='';
      for i:=0 to FcdTemp.FieldCount-1 do
      begin
        if i=0 then
          KeyFields:=FcdTemp.Fields[i].FieldName
        else
          KeyFields:=KeyFields ';' FcdTemp.Fields[i].FieldName;
        KeyValue[i]:=FcdTemp.Fields[i].Value;
      end;
      ClientDataSet1.Locate(KeyFields,KeyValue,[]);
    end;
  finally
    FcdTemp.Free;
  end;
end;
huangbh57
一般會員


發表:28
回覆:21
積分:9
註冊:2004-10-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-12 16:38:12 IP:218.247.xxx.xxx 未訂閱
就如KeyFields的變量s1:=字段1 ';' 字段2 ';' 字段3,已知字段1:='A';字段2:='B';字段3:='C';KeyValues的變量s2,就象字符串一樣賦值,如s2:='[' 'A' 不知道,而不是keyvalues:=['A','B','C'],查詢為clientdataset.locate(s1,VarArrayOf(s2),[])
huangbh57
一般會員


發表:28
回覆:21
積分:9
註冊:2004-10-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-12 16:46:20 IP:218.247.xxx.xxx 未訂閱
已解決,多謝各位
系統時間:2024-06-26 16:17:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!