Sunday, April 24, 2011

Update record after record insert in table


If you are getting the following error while inserting and updating records.

Cannot edit a record in Table (Tablename).
An update conflict occurred due to another user process deleting the record or changing one or more fields in the record.


You will be doing it in this way;


1.Table table;
2.;
3.table.Field1 = 'A';
4.table.insert();
5.
6.table.Field2 = 'Desc';
7.table.update();

To avoid such cases:


01.Table table;
02.;
03.ttsbegin;
04.table.Field1 = 'A';
05.table.insert();
06.
07.table.Field2 = 'Desc';
08.table.update();
09.ttscommit;

Or this way:


01.Table table;
02.;
03.table.Field1 = 'A';
04.table.insert();
05.
06.// time consuming other code here
07.
08.ttsbegin;
09.table.selectForUpdate(true);
10.table.reread();
11.table.Field2 = 'Desc';
12.table.update();
13.ttscommit;