5

rttiを使用してバリアントフィールドにnullを設定する際に問題が発生しました。

次のようなクラスがあるとします。

TClass1 = class
  Field1:Integer;  
  Field2:Variant; 
end;

Field1にアクセスすると、次のことができます。

Field.SetValue(TObject(ValueObject.AsObject), 1);

しかし、Field2ではこれを行うことができないようです。

Field.SetValue(TObject(ValueObject.AsObject), null);

また

Field.SetValue(ValueObject.AsObject, TValue.FromVariant(NULL));

したがって、私が欲しいのは、上記のクラスのField2にnull値を設定できるようにすることです。出来ますか?任意のアイデアをいただければ幸いです。

ゴラン

4

2 に答える 2

5

これは機能します:

Field.SetValue(Self, TValue.From<Variant>(Null) );
于 2010-02-05T16:29:15.603 に答える
1

これは、この質問に答えているときに見つけたバグの別の兆候のようです。SetValueは、特定のデータ型の「空の」値を正しく処理しません。QCレポートを新しいケースで更新します。したがって、現時点では、少なくともRTTIユニットにパッチを適用しないとできません。

于 2010-02-05T13:32:13.143 に答える