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

locate的問題:

答題得分者是:cmj
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-23 17:15:43 IP:203.69.xxx.xxx 未訂閱
locate的問題: 程式如下: 把同年 月份的FMTP加起來,以下方法有錯嗎?因我在CD1.LOCATE時, 沒有找到相同cd1.IndexFieldNames時,卻會執行CD1.EDIT 應執行cd1.APPEND; 有QUERY qy1:含TYPE,AMT....資料 CD1:含YYMM,TYPE,AMT,COST....資料 CD2:含YYMM....資料 cd1.IndexFieldNames:='YYMM;TYPE'; cd2.IndexFieldNames:='YYMM_'; with cd2 do begin first; while not EOF do begin with qy1 do begin first; while not EOF do begin if ( cd1.Locate('TYPE',qy1TYPE.AsString,[loCaseInsensitive])) and ( cd1.Locate('YYMM',cd2YYMM_.AsString,[loCaseInsensitive]) )then begin cd1.Edit; XXX XXX cd1.POST; END ELSE BEGIN cd1.APPEND; XXX XXX cd1.POST; END; qy1.next; end; //e end; //if cd2.next; end; end;
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-23 20:25:50 IP:211.76.xxx.xxx 未訂閱
引言: locate的問題: 程式如下: 把同年 月份的FMTP加起來,以下方法有錯嗎?因我在CD1.LOCATE時, 沒有找到相同cd1.IndexFieldNames時,卻會執行CD1.EDIT 應執行cd1.APPEND; 有QUERY qy1:含TYPE,AMT....資料 CD1:含YYMM,TYPE,AMT,COST....資料 CD2:含YYMM....資料 cd1.IndexFieldNames:='YYMM;TYPE'; cd2.IndexFieldNames:='YYMM_'; with cd2 do begin first; while not EOF do begin with qy1 do begin first; while not EOF do begin if ( cd1.Locate('TYPE',qy1TYPE.AsString,[loCaseInsensitive])) and ( cd1.Locate('YYMM',cd2YYMM_.AsString,[loCaseInsensitive]) )then begin cd1.Edit; XXX XXX cd1.POST; END ELSE BEGIN cd1.APPEND; XXX XXX cd1.POST; END; qy1.next; end; //e end; //if cd2.next; end; end;
紅色部為查詢,依妳所述應是複合欄位查詢,所以看程式碼邏輯是怪怪的 提供複合欄位查詢做法參考 cd1.Locate('YYMM;TYPE',VarArrayOf([cd2YYMM_.AsString,qy1TYPE.AsString]),[]); 至於locate之option loCaseInsensitive: 查詢不分大小寫 loPartialKey:查詢時只要部份符合,宇串由本至右
系統時間:2024-06-02 7:23:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!