2013-07-26 23 views
0

我有一個斷開的ClientDataset(我從工具欄中拖動該組件,右鍵單擊它並在上下文菜單中選擇「創建數據集...」)沒有提供者。 我從數據庫中像這樣的一些記錄加載:Delphi:在使用AppendData(Data,False)兩次到ClientDataset後,我無法編輯其行或移動其光標

someProvider.Dataset = someQuery; 
someQuery.Open; 
data:= someProvider.GetRecords(-1,recordsextracted,ResetOption+MetaDataOption); 

if not cdsMyClientDataset.Active then 
begin 
    cdsMyClientDataset.Open; 
end; 

cdsMyClientDataset.EmptyDataSet; 
cdsMyClientDataset.AppendData(data,False); 

客戶端數據集綁定了數據源到一個DBGrid,我允許用戶添加,刪除或編輯記錄。如果他想要他可以重新加載以放棄更改,並且我再次調用上面的代碼。

但之後第二次調用上面的代碼,DbGrid不起作用。用戶不能滾動或編輯任何字段。我可以編程導航和編輯記錄就好了,但不能用DbGrid。

回答

-1

如果不附加額外數據,做這些,而不是

From 
if not cdsMyClientDataset.Active then 
begin 
    cdsMyClientDataset.Open; 
end; 

cdsMyClientDataset.EmptyDataSet; 
cdsMyClientDataset.AppendData(data,False); 

To 
cdsMyClientDataset.Data := data; 

歡呼 範

+0

感謝您的回答,但問題即使你的代碼仍然存在。 –

相關問題