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

三層結構中中間層DataSet如何利用客戶端傳輸進變體數組locate查詢

 
pwq
一般會員


發表:5
回覆:13
積分:3
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-05-03 11:44:35 IP:61.152.xxx.xxx 未訂閱
我在做三層結構時,TClientDataSet設置FetchOnDemond:=true; 當取下一數據包時傳遞TClientDataSet的最后一筆記錄的相關檔位(以變體數組方式)給中間層的DataSetProvide,當中間層的GetNextPacket是根據傳遞來的變體數組locate那條記錄時查詢不到值,實際存在: procedure TMrpDataM.PrdInvBeforeGetRecords(Sender: TObject; var OwnerData: OleVariant); var FieldStr:String; ValuesArr:Array of String; begin If (VarIsNull(OwnerData) or VarIsEmpty(OwnerData)) then Exit; If VarIsArray(OwnerData) then begin ValuesArr:=OwnerData; //除去傳遞來的查找關鍵字段字串,將其放入到FieldStr中 FieldStr:=ValuesArr[High(ValuesArr)]; //將變體數組邊界減1 ,以便得到傳入的值 SetLength(ValuesArr,High(ValuesArr)); With Sender as TDataSetProvider Do begin DataSet.Open; //緣因:沒找到記錄,所以光標信息不變,提取記錄總是重複,為什么找不到呢? DataSet.Locate(FieldStr,ValuesArr,[]); // DataSet.Next; end; end; end;
pwq
一般會員


發表:5
回覆:13
積分:3
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-05-03 13:23:04 IP:61.152.xxx.xxx 未訂閱
各位大俠請看看吧!
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-05-08 15:02:16 IP:61.171.xxx.xxx 未訂閱
注意Locate的用法, 當只有一個欄位時,第2個參數不能是array,需要的是直接的查詢值
------
江上何人初见月,江月何年初照人
pwq
一般會員


發表:5
回覆:13
積分:3
註冊:2002-03-13

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