TClientDataset: «Тип поля не поддерживается для XML.» - PullRequest
0 голосов
/ 26 декабря 2008

У меня есть куча данных, загруженных в TClientDataset, представляющих массив сложных объектов. Но когда я пытаюсь запустить

Dataset.SaveToFile('c:\test.xml', dfXMLUTF8);

это не нравится:

Project testing.exe поднял класс исключения EDBClient с сообщением «Тип поля не поддерживается для XML.».

Это гораздо менее полезно, чем должно быть, по двум причинам. Во-первых, в нем не указано, какое поле или какой тип поля не поддерживается, а во-вторых, фактическое сохранение происходит внутри DLL черного ящика.

Единственными типами полей, которые я использую в этом наборе данных, являются целые числа, строки, логические значения и несколько полей TArrayFields, которые содержат массивы целочисленных полей. Ничего, что я ожидал бы, чтобы было так сложно сериализовать. У кого-нибудь есть идеи, почему это не работает?

Ответы [ 2 ]

1 голос
/ 27 декабря 2008

Все сохранено или только некоторые поля? Может быть, например, TArrayFields выдают исключение? Попробуйте удалить разные типы полей один за другим и посмотрите, когда все начнет работать.

0 голосов
/ 27 декабря 2008

Неожиданное предположение, что поля массива не поддерживаются в экспорте XML, но вы должны проверить.

Перейдите в Параметры проекта-> Компилятор и включите «Использовать отладочные DCU». Перестроить.

Установите точку останова на вызове SaveToFile (). Run.

Затем вы можете перейти к источнику VCL и попытаться найти то, что не поддерживается.

...