Функция OpenAsClone, вызывающая ошибку в Delphi XE4
У меня есть 2 набора данных, как в моем приложении Delphi XE4:
object dsDestination: TpFIBDataSet
object Field1: TFIBStringField
FieldName = 'MYSTRING'
Size = 1
Transliterate = False
ene
object Field2: TFIBIntegerField
FieldName = 'MYINT'
end
end
object dsSource: TpFIBDataSet
object dsSourceMYSTRING: TFIBStringField
FieldName = 'MYSTRING'
Size = 1
Transliterate = False
end
object dsSourceMYINT: TFIBIntegerField
FieldName = 'MYINT'
end
end
Когда я пытаюсь сделать следующее заявление:
dsSource.Open;
dsDestination.OpenAsClone(dsSource);
Я получаю следующую ошибку в последней строке
dsDestination: Field MYSTRING not found
В Delphi 7 все работает нормально. Мое приложение Delphi 7 использует Firebird 2.5.1, а Delphi XE4 - 2.5.2. Я использую FIBPlus 7.5.
1 ответ
Решение
Я нашел причину ошибки:
Когда я увидел редактор полей набора данных dsDestination, он был заполнен полями dsSource. Я просто удалил все поля из редактора полей dsDestination, собрал и скомпилировал проект, и проблема была решена.