Consultor Eletrônico



Kbase P86893: Fields have been changed by another user error with Dynamics
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   7/2/2004
Status: Unverified

FACT(s) (Environment):

Dynamics 2.1A

SYMPTOM(s):

Fields have been changed by another user error with Dynamics

Field(s) have been changed by another user. Your change has been rejected.

Update cancelled.

Updating a record results in update cancelled error when there are no other users updating the database. Any update causes this error.

Adding new records and updating these new records works successfully.

CAUSE:

Space characters " " (not NULL "") have been stored in the database.

Progress by default truncates space characters to NULL, when they are entered via UI objects, before storing in the database. So, the situation where an actual space character (" ") is stored in a field must have been achieved using some other method. One such method is with the ASSIGN statement in 4GL. But the result is the following course of events:

1. A record is updated in a smartDataViewer, but the value of the blank fields are not changed.
2. The space values in the fields are truncated before the ADM tries to save the changes.
3. CompareDBRow in query.p BINARY compares the RowObjUpd record with the original database values. However because the binary values of the truncated UI fields (NULL "") do not match the binary value of the stored database
space (" ") the ADM thinks someone else has changed the DB value and the error appears.

FIX:

The way to resolve the problem is to use 4GL to assign a value of "" (NULL) to each field that has a space value (" ").