三層結構中中間層DataSet如何利用客戶端傳輸進變體數組locate查詢 |
|
pwq
一般會員 發表:5 回覆:13 積分:3 註冊:2002-03-13 發送簡訊給我 |
我在做三層結構時,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 發送簡訊給我 |
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
|
pwq
一般會員 發表:5 回覆:13 積分:3 註冊:2002-03-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |