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

移動clientdataset時出現Variant or safe array is locked

缺席
huangbh57
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-10 14:09:41 IP:218.247.xxx.xxx 未訂閱
請問各位 有時我移動clientdataset記錄時出現Variant or safe array is locked,不知是什麼原因
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-10 15:45:05 IP:210.69.xxx.xxx 未訂閱
根據你提供的資訊, 小弟也只知道 Variant or safe array is locked 將程式碼貼出吧
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
huangbh57
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-10 16:30:07 IP:218.247.xxx.xxx 未訂閱
我設計的一個一個表單為dll文件,按書上所說TClientdataset的packetrecord不為-1(已設為10),且fetchondemand為false(已設為false)時為無狀態對象,當我的TDataSetProvider的poArrowcommandtext為true時,打開兩個dll文件,且記錄多于10個時就會出錯:adoquery:Cannot perform this operation on an open dataset' 於是我改用下面方法: procedure TFm.clientdataset1BeforeGetRecords(Sender: TObject; var OwnerData: OleVariant); var LastValue: OleVariant; KeyFields:string; begin KeyFields:='po1;po2'; if masterdataset.Active then begin CDSClone.CloneCursor(masterdataset, True); CDSClone.Last; LastValue := VarArrayOf([CDSClone.fieldbyname('po1').AsString,CDSClone.fieldbyname('po2').AsString]); CDSClone.Close; end else LastValue := NULL; OwnerData := VarArrayOf([sql語句,KeyFields,LastValue]); end; 在TDataSetProvider: procedure TSpring.DataSetProvider1BeforeGetRecords(Sender: TObject; var OwnerData: OleVariant); begin try adoQuery.Close; adoQuery.SQL.Text := OwnerData[0]; if not VarIsNull(OwnerData[2]) and not VarIsEmpty(OwnerData[2]) then begin adoQuery.Open; if not MasterQuery.Locate(OwnerData[1],OwnerData[2], []) then exit; adoQuery.Next; end; finally OwnerData := NULL; end; end; 同時打開兩個dll表單,當執行clientdataset1.GetNextPacket時,就出現:variant or safe array is locked,三層結構不知怎麼寫才能服務於多客戶,且取數時是一批一批的取到客戶端,而且能打開多個表單,實在是急!!!
系統時間:2024-05-19 2:36:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!