【仕様】オブジェクト型フィールドのサブオブジェクトを更新することについて

前のトピックを表示 次のトピックを表示 Go down

【仕様】オブジェクト型フィールドのサブオブジェクトを更新することについて

投稿 by miyako on 2017-06-05, 10:03 am

オブジェクト型フィールドにオブジェクト型の属性が存在し,その属性をオブジェクト型変数とOB SETで直接更新した場合,そのままではフィールドが更新されません。これは仕様です。

例:

C_OBJECT($oSubObject)
OB SET($oSubObject;"Test";100)
CREATE RECORD([Test])
OB SET([Test]TestObject;"MySubObject";$oSubObject)
SAVE RECORD([Test])
TRACE

UNLOAD RECORD([Test])
LOAD RECORD([Test])

$oSubObject:=OB Get([Test]TestObject;"MySubObject";Is object)
OB SET($oSubObject;"Test";200)
SAVE RECORD([Test])

UNLOAD RECORD([Test])
LOAD RECORD([Test])

最初のコードブロックで"100"がレコードに登録されます。

しかし,オブジェクト型変数を介してサブオブジェクトの値を"200"に更新しても,値は元のままです。

対策

レコードが更新されたことを示す(タッチする)ため,下記のようなコードを実行してください。

[Test]TestObject:=[Test]TestObject

miyako

投稿数 : 204
登録日 : 2016/07/05

トップに戻る Go down

前のトピックを表示 次のトピックを表示 トップに戻る


 
Permissions in this forum:
返信投稿: 不可