domingo, 3 de julio de 2011

No olvide TTSBEGIN/TTSCOMMIT y la cláusula FORUPDATE.

I know that I'm working in Spanish but I can't believe that Google throws (threw!) up an empty search result for the title of this blog.  I'm here to save the proud Hispanic population...

Here is my original error message:
No se puede editar un registro en Relaciones empresariales (smmBusRelTable).

No se puede completar la operación porque no se ha seleccionado el registro para su actualización. No olvide TTSBEGIN/TTSCOMMIT y la cláusula FORUPDATE.

Here are two of the most common reasons:
1. We forgot to add the forupdate clause in the select statement:
select forupdate smmBusRelTable
    where smmBusRelTable.PartyType == DirPartyType::Organization

2. Annoying one when you find out it's for this reason:
smmBusRelTable = smmBusRelTable::find(busRelAccount, true);
We forgot to add the second parameter 'true', to be able to commit changes to the buffer returned. All that the standard find function does is add a smmBusRelTable.selectForUpdate(true); line.

3. The least common one for me are unbalanced ttsbegin + ttscommit / ttsabort commands.

If you can't find the solution to your error here, try Googling: The operation cannot be completed, since the record was not selected for update. Remember TTSBEGIN/TTSCOMMIT as well as the FORUPDATE clause.

No hay comentarios:

Publicar un comentario