0

複雑なオブジェクトの配列を表す一連のデータを TClientDataset にロードしました。でも走ろうとすると

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

それは好きではありません:

プロジェクト testing.exe で例外クラス EDBClient が発生し、「Fieldtype は XML でサポートされていません。」というメッセージが表示されました。

これは、2 つの理由から、必要以上に有用ではありません。まず、どのフィールドまたはどのフィールド タイプがサポートされていないかについては言及されていません。次に、実際の保存はブラックボックス DLL 内で行われています。

このデータセットで使用しているフィールド タイプは、整数、文字列、ブール値、および整数フィールドの配列を保持するいくつかの TArrayFields のみです。シリアル化するのがそれほど難しいとは思いません。なぜこれが機能しないのか、誰にも分かりますか?

4

2 に答える 2

1

すべてが保存されていますか、それとも一部のフィールドだけですか? たとえば、TArrayFields が例外をスローしている可能性がありますか? さまざまなフィールド タイプを 1 つずつ削除してみて、いつ機能し始めるかを確認してください。

于 2008-12-26T21:19:32.433 に答える
0

配列フィールドはXMLエクスポートではサポートされていないというのが大げさですが、確認する必要があります。

[プロジェクトオプション]->[コンパイラ]に移動し、[デバッグDCUを使用する]をオンにします。再構築します。

SaveToFile()呼び出しにブレークポイントを設定します。走る。

次に、VCLソースにステップインして、サポートされていないものを探します。

于 2008-12-26T23:45:08.240 に答える