0

我正在尝试设置一个使用读取器和写入器数据集TFDBatchMove调用的对象。FDBatchMove根据这个文档

应用程序应将所需的读取器和写入器分配给属性,然后调用 Execute 方法。

根据一个应该的文件TFDBatchMoveDataSetReader

使用 TFDBatchMoveDataSetReader 定义源数据集,使用 TFDBatchMove 从中加载信息。

设置 DataSet 属性以选择数据集。

选择 TFDBatchMoveDataSetReader 作为 TFDBatchMove 的 Reader 属性。

文档包含TFDBatchMoveDataSetWriter相同的步骤。

因此,我创建了一个TFDBatchMoveDataSetReader和一个TFDBatchMoveDataSetWriter对象,并像这样设置它们的数据集值:

TFDBatchMoveDataSetReader * Reader = new TFDBatchMoveDataSetReader( this );
Reader->DataSet = MyDataSet1;

TFDBatchMoveDataSetReader * Writer = new TFDBatchMoveDataSetReader( this );
Writer->DataSet = MyDataSet2;

但是,当我尝试设置TFDBatchMove对象的读取器和写入器属性时(即文档中的第三步),我遇到了一个问题。

编码...

FDBatchMove->Reader = Reader;
FDBatchMove->Writer = Writer;  

...给我以下错误:

E2034 Cannot convert 'TFDBatchMoveDataSetReader *' to '_di_IFDBatchMoveReader'

E2034 Cannot convert 'TFDBatchMoveDataSetWriter *' to '_di_IFDBatchMoveWriter'

我尝试显式创建一个新_di_IFDBatchMoveReader对象,但是该对象不允许我访问 Dataset 属性。我应该如何TFDBatchMove使用数据集阅读器和数据集编写器设置我的对象?

4

1 回答 1

0

在查看了这个 delphi示例后,我找到了解决方案。为了将TFDBatchMoveDataSetReaderTFDBatchMoveDataSetWriter对象应用于TFDBatchMove对象,您将TFDBatchMove对象放在其构造函数中作为所有者参数。所以在我的情况下,它看起来像这样:

TFDBatchMoveDataSetReader * Reader = new TFDBatchMoveDataSetReader( FDBatchMove );
TFDBatchMoveDataSetReader * Writer = new TFDBatchMoveDataSetReader( FDBatchMove );
于 2015-10-13T14:59:42.907 回答