Firedac: Как настроить TFDBatchMove с устройством чтения / записи наборов данных?

Я пытаюсь настроить TFDBatchMove объект называется FDBatchMove с набором данных читателя и писателя. В соответствии с эта документация

Прикладная программа должна назначить свойства для чтения и записи, а затем вызвать метод Execute.

Согласно документация за TFDBatchMoveDataSetReader кто-то должен

Используйте TFDBatchMoveDataSetReader, чтобы определить исходный набор данных, из которого можно загрузить информацию, используя TFDBatchMove.

Установите свойство DataSet, чтобы выбрать набор данных.

Выберите TFDBatchMoveDataSetReader в качестве свойства Reader для TFDBatchMove.

документация за 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 объект, однако этот объект не дает мне доступ к свойству набора данных. Как я должен настроить мой TFDBatchMove объект с читателем набора данных и писателем набора данных?

0

Решение

Посмотрев на этого дельфи пример Я разобрался с решением. Для того, чтобы применить TFDBatchMoveDataSetReader а также TFDBatchMoveDataSetWriter возражает против TFDBatchMove объект, вы размещаете TFDBatchMove Объект в их конструкторах в качестве параметра владельца. Так что в моем случае это будет выглядеть так:

TFDBatchMoveDataSetReader * Reader = new TFDBatchMoveDataSetReader( FDBatchMove );
TFDBatchMoveDataSetReader * Writer = new TFDBatchMoveDataSetReader( FDBatchMove );
0

Другие решения

Других решений пока нет …