Re: How to deal with FRM-40654 ? - solved; thanX

From: Jan Gelbrich <j_gelbrich_at_westfalen-blatt.de>
Date: Wed, 28 Jul 2004 08:30:35 +0200
Message-ID: <2movnrFp7egtU1_at_uni-berlin.de>


"Sybrand Bakker" <gooiditweg_at_nospam.demon.nl> schrieb im Newsbeitrag news:n73dg0l3h1u3i66rdun1jskqgonbp9sa3s_at_4ax.com...
> On Tue, 27 Jul 2004 16:09:18 +0200, "Jan Gelbrich"
> <j_gelbrich_at_westfalen-blatt.de> wrote:
>
> >Makes me scratching my head ... vot iss ziss ?
>
> Not the Madonna with the big boobies in any case.
> Somehow you must be locking or updating your table behind the scenes,
> or you are requerying your block explicitly.
> One thing to know, as soon as soon change *any* character on your
> form, Oracle will issue an implicit select for update on your behalf.
>
>
> --
> Sybrand Bakker, Senior Oracle DBA

Thank You, Sybrand.

Yes, You were right.
It was something "behind the scenes" :)

Now I found the cause:
I had _all_ columns of the table in my database block - I used the data block wizard to build it.
Then I made the layout, most of the columns as visible items, but some not, as ID, LOG_WHEN, LOG_WHO.
In the form of course, users can only change _visible_ items. But at the database side, a BIUR-trigger updates LOG_WHEN, LOG_WHO, too, anytime anyone commits. And those changes are - not in my Form, so I see: FRM-40654.

Solution:
I eliminated LOG_WHEN and LOG_WHO from my database block because I do not need them here,
et violá: I always see FRM-40400: transaction completed.

What gave me another good tip about this was also: Oracle Forms Developers´ Handbook from Lulushi, p.44f

Greetings, Jan Received on Wed Jul 28 2004 - 08:30:35 CEST

Original text of this message