Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FRM - 40600 rekord został już wstawiony
Forum PHP.pl > Forum > Bazy danych > Oracle
Catty
Witam
Od kilku dni zmagam sie z problemem, pisalam juz na www.orafaq.com ale nadal nie mam rozwiazania.
Problem jest nastepujacy:
Mam formularz ktory zostal przekonwertowany z FORMS 3.0 na wspomniane FORMS 6.0. Utworzona jest formatka ktora posiada kilka stron(od page1 do page8). Na jednej ze stron tworze blok danych ktory jest zasilany z tabeli bazy danych. W tym bloku uzywam wyzwalacza KEY-CRECREC i wywoluje kolejny blok. Oto tresc tego wyzwalacza:

Kod


declare nr_f number;
begin
create_record;
     select nvl(max(id_formy),0)+1 into nr_f
       from kartoteka_form
          where zaklad=:global.zaklad;
:global.id_formy :=nr_f;
:sl_form.id_formy:=nr_f;
:sl_form.zaklad  :=:global.zaklad;
:sl_form.id_masz :=:global.id_masz;
end;
--message ('KEY-CREREC');
go_block('formy');
hide_page(8);
execute_query;


W kolejnym wywolanym bloku wprowadzam zmiany, dopisuje informacje i chce zapisac je uzywajac wyzwalacza KEY-EXIT. Oto jego tresc:

Kod
:sl_form.id_formy := :formy.id_formy;
:sl_form.opis     := :formy.opis    ;
:sl_form.nr_inwent:= :formy.nr_inwent;
:sl_form.data_zak := :formy.data_zak;
:sl_form.sprawna  := :formy.sprawna ;
:sl_form.il_gniazd:= :formy.il_gniazd;
:sl_form.zaklad   := :formy.zaklad  ;
:sl_form.id_masz  := :formy.id_masz ;
:sl_form.id_wyr   := :formy.id_wyr  ;
        
go_block('sl_form');
--post;
execute_query;
hide_page(6);


Ale w momencie execute_query wyskakuje blad FRM - 40600. Szukam juz wszedzie ale nic nie moge znalezc, nie potrafie rozwiazac tego problemu a jest pilny.
Kluczem w tabeli jest kombinacja ID_FORMY i ZAKLAD. W tym drugim wywolywanym bloku ustawiam ze element ID_FORMY jest kopiowany z odpowiedniego elementu bloku wywolywanego i tak samo robie dla zakladu. Prosze pomozcie bo juz nie wiem co z tym zrobic.
Bede bardzo wdzieczna
Pozdrawiam
KILIUSZKIN
znalazłem coś takiegoznalazlem cos takiego
oraz
takiego

Moze to pomoze.

FRM-40600: Record has already been inserted.

Cause: You attempted to insert or update a record, but uniqueness is enforced on the block's primary key items. The record, as inserted or updated, is not unique.

Action: Change the values in one or more primary key fields of the current record, making them unique. If the requirement of unique primary key fields creates difficulties, consider eliminating the constraint.
Catty
Dziekuje KILIUSZKIN za zainteresowanie. Oba te posty znałam, ale nic one nie wniosły do mojego problemu. Jednak wczoraj z pomoca znajomego znalazlam rozwiazanie. Moj problem polegal na ustawieniu wlasciwosci bloku danych tak zeby wyswietlany byl pojedynczy rekord i blok nie byl blokiem bazy danych. Dodatkowo usunelam zbedny jak sie okazalo w moim przypadku wyzwalacz ON-INSERT i teraz juz nie mam problemu.
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.