Forms 6i, same module generates different LOCK-Statements on different
Topic : Forms 6i, same module generates different LOCK-Statements on different
instance
Error : FRM-40654 : Record has been changed" Error!
Hi, we have a real problem and do not understand it. A Forms-modul without
specified ONLOCK Section generates the LOCK Statement itself. The problem
is that dependend on the Instance ( same datamodel but different release
level ) it generates different LOCK Statements. The Lock is on a view :
Code:
INSTANCE ORCK super!:
SELECT
LAEI_LAD_GEW,LAEI_LDM_GEW,LAEI_EIG_GEW,LE_ZEICHEN,LE_NR,KZ_LAENGE,
GATTUNG,BUCH_NR,MAND_NR,AUFT_NR,LAEI_LFD_NR
FROM
v141 WHERE ROWID=:1 FOR UPDATE OF LAEI_LAD_GEW
INSTANCE OREK BAD; locks almost the complete table:
SELECT ROWID,LAEI_LAD_GEW,LAEI_LDM_GEW,LAEI_EIG_GEW,LE_ZEICHEN,LE_NR,
KZ_LAENGE,GATTUNG,BUCH_NR,MAND_NR,AUFT_NR,LAEI_LFD_NR
FROM
v141 WHERE LAEI_LFD_NR=:1 FOR UPDATE OF LAEI_LAD_GEW
We found a workaround and specified some (the tables PK ) colums as
Primary key in the data block of the view, but ... we do not understand
the behavior.
The views are the same, the prime keys if the base tables are the same.
Here the view :
Code:
CREATE OR REPLACE VIEW LPK.VW_0141
(le_zeichen, le_nr, kz_laenge, size_type, gattung, laei_lad_gew,
laei_ldm_gew, laei_eig_gew, hoehe, gg_kzn, zoll_kzn, laei_kuehlct_kzn,
beku_nr_empf, beku_nr_vers, klbe_nr_rechempf, besteller, klbe_nr_verf,
status, mand_nr, auft_nr, laei_lfd_nr, buch_nr, anz_gepo, gg_soll)
AS
SELECT LAEI.LAEI_LE_ZEICHEN LE_ZEICHEN,
LAEI.LAEI_LE_NR LE_NR,
LAEI.KELL_KELL_KENNZAHL_LE_LAENGE KZ_LAENGE,
LAEI.GARE_GARE_ID_SIZETYP SIZE_TYPE,
GATT.GATT_GATTUNG GATTUNG,
LAEI.LAEI_LAD_GEW LAEI_LAD_GEW,
LAEI.LAEI_LADEMITTELGEWICHT LAEI_LDM_GEW,
LAEI.LAEI_EIG_GEW LAEI_EIG_GEW,
LAEI.HOEH_HOEH_IN_FUSS HOEHE,
DECODE(LAEI.LAEI_AKT_STATUS_BET,
'GEB',
LAEI.LAEI_GEFAHRGUT_KZN_SOLL,
LAEI.LAEI_GEFAHRGUT_KZN) GG_KZN,
LAEI.LAEI_ZOLL_KZN ZOLL_KZN,
LAEI.LAEI_KUEHLCONTAINER_KZN LAEI_KUEHLCT_KZN,
--LAEI.KLBE_KLBE_NR_EMPFANGEN KLBE_NR_EMPFANGEN, -- AEN TS
20021205
--LAEI.KLBE_KLBE_NR_VERSENDEN KLBE_NR_VERS, -- AEN TS
20021205 LAEI.BEKU_BEKU_NR_EMPFANGEN, -- AEN TS 20021205
LAEI.BEKU_BEKU_NR_VERSENDEN, -- AEN TS 20021205
AUFT.KLBE_KLBE_NR_RECHNUNGSEMP KLBE_NR_RECHEMPF,
AUFT.AUFT_ANSPRECHPARTNER BESTELLER,
LAEI.KLBE_KLBE_NR_BETREUEN KLBE_NR_VERF,
LAEI.LAEI_AKT_STATUS_BET STATUS,
LAEI.AUFT_MAND_MAND_NR MAND_NR,
LAEI.AUFT_AUFT_NR AUFT_NR,
LAEI.LAEI_LFD_NR LAEI_LFD_NR,
AUFT.AUFT_BUCH_NR,
LAEI.LAEI_ANZ_GEPO ANZ_GEPO,
LAEI.LAEI_GEFAHRGUT_KZN_SOLL GG_SOLL
FROM LADEEINHEITEN LAEI, AUFTRAEGE AUFT, GATTUNGEN GATT
WHERE AUFT.MAND_MAND_NR = LAEI.AUFT_MAND_MAND_NR AND
AUFT.AUFT_NR = LAEI.AUFT_AUFT_NR AND
GATT.GATT_ID = LAEI.GATT_GATT_ID
LADEEINHEITEN, AUFTRAEGE are views on single table; GATTUNGEN is a table;
Does anybody know about the mechanism, or have do i to write an article
about 'the secret life of Forms 6i Modules'?
Regards for your help
Karl