Delphi 如何将数据从TDataSet移动到TClientDataSet?我需要数据的XML表示
如何轻松地将数据从Delphi 如何将数据从TDataSet移动到TClientDataSet?我需要数据的XML表示,delphi,type-conversion,tclientdataset,tdataset,Delphi,Type Conversion,Tclientdataset,Tdataset,如何轻松地将数据从TDataSet移动到TClientDataSet?我需要TClientDataSet.XMLData属性中数据的XML表示。将TDataSetProvider拖到带有ClientDataSet的表单或数据模块上,将ClientDataSets属性ProviderName设置为TDataSetProvider的名称。将TDataSetProvider的DataSet属性设置为另一个数据集。打开ClientDataSet。这是从TClientDataset派生的角度进行的 pro
TDataSet
移动到TClientDataSet
?我需要TClientDataSet.XMLData
属性中数据的XML表示。将TDataSetProvider
拖到带有ClientDataSet的表单或数据模块上,将ClientDataSets属性ProviderName
设置为TDataSetProvider
的名称。将TDataSetProvider
的DataSet
属性设置为另一个数据集。打开ClientDataSet。这是从TClientDataset派生的角度进行的
procedure TMyClientDataset.CopyFromDatasetProvider(Dataset: TDataset);
var DataSetProvider : TDataSetProvider;
begin
DataSetProvider := nil;
try
Close;
DataSetProvider := TDataSetProvider.Create(nil);
DatasetProvider.Options := [poNoReset];
StoreDefs := False;
DataSetProvider.DataSet := Dataset;
SetProvider(DataSetProvider);
Open;
First;
SetProvider(nil);
finally
if Assigned(DataSetProvider)
then DataSetProvider.Free;
end;
end;
谢谢,但是为什么要使用
DatasetProvider.Options:=[poNoReset]代码>和StoreDefs:=False代码>?此代码返回具有正确字段结构的TMyClientDataset.RecordCount
=0。StoreDefs忽略筛选信息。请参阅联机帮助。我在网上找到了这个密码。我不知道该告诉你什么,我一直在用它把AdoDataSet复制到TclientDataSet。不幸的是,它不起作用。仅成功复制了字段结构。由于这是它的工作方式,可能是由于安装程序中的某些设置。在获取XML之前,您可以尝试调用ClientDataSet.Last
,以确保所有数据都已加载。第一行也未加载。那么为什么要加载最后一个呢?好吧,我在这里尝试了我的答案中的描述,它工作得非常完美。你应该提供更多的信息来追踪问题。Uwe,你能展示代码吗?我使用了第二个答案中的。我还将TDBGrid连接到TDataSet。类似的问题:这个问题: