Consultor Eletrônico



Kbase P100852: ProDataSet:GET-CHANGES() does not get parents of modified child records
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/4/2005
Status: Unverified

FACT(s) (Environment):

OpenEdge 10.x

SYMPTOM(s):

ProDataSet:GET-CHANGES() does not get parents of modified child records

CAUSE:

This is expected behavior.

GET-CHANGES() by default only gets the modified record, and no additional information. This is to minimize the size of the changes ProDataSet.

Note that this behavior may be different from dataset constructs by other software vendors - most notable, the Microsoft .NET dataset includes the parent records of modified child records by default.

FIX:

Starting with 10.0B01, the GET-CHANGES() method has been expanded so the parent records of modified child records can be included if desired.

From the 10.0B01 READMESP.txt file:

3. GET-CHANGES option to include parents
----------------------------------------
The GET-CHANGES method has a new positional, optional parameter:
get-parent-mode. Get-parent-mode is logical.

change-handle:GET-CHANGES(original-handle [, get-parent-mode ] )

Get-parent-mode defaults to FALSE.

If get-parent-mode is TRUE, then the parent, grand-parent, etc. records for any created, changed or deleted record will also be copied into the change dataset. If the copied parent record has no change of its own, there will be no before-image for the parent record, and its row-state will be 0 or UNKNOWN. If the original record was deleted, Progress can still look for its parent records through the original records before-table row.

There is no error or warning raised if the parent record is not found.
The parent record may not be found either because the parent was never in the original dataset, or has been deleted from the original dataset.

No attempt is made to find REPOSITION parents.