ネストされたデータセットに更新を適用するときにプロバイダーのイベントで親データセット情報 (などMyField.NewValue
)にアクセスできますか?BeforeUpdateRecord
理由:
ネストされた詳細を持つ CDS に更新を適用すると、基になるクエリ ( TIBCQuery
) によってマスター PK が生成され、マスター CDS に伝達されます。
BeforeUpdateRecord
ただし、フィールドが で更新されるため、新しいキーは詳細には表示されませんAfterUpdateRecord
。
DeltaDS.FieldByName(FieldName).NewValue := SourceDS.FieldByName(FieldName).NewValue)
デルタはまだマージされていません。
詳細の呼び出しが発生したときに、イベントのDeltaDS
パラメーターにはBeforeUpdateRecord
、ネストされたデータセットへの情報のみが含まれているようです。
次のようなことができればいいのですが:
DeltaDS.ParentDS.FieldByName('FIELDNAME').NewValue.
編集:
ネストされたデータセットを使用する場合、BeforeUpdateRecord
イベントはマスター用に 1 回、詳細用に 1 回 (両方のレコードが 1 つある場合) の 2 回呼び出されます。イベントが詳細に対して呼び出されたときに、に含まれるマスター情報にアクセスする方法はありDeltaDS
ますか?
変更がまだマージされていないため、現時点ではマスター CDS のデータにアクセスできません。これがこれ以上の混乱を招かないことを願っています。