Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Update iz treigera

[es] :: Oracle :: Update iz treigera

[ Pregleda: 2530 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kristina_ksk
Zagreb

Član broj: 184917
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon Update iz treigera16.06.2008. u 00:07 - pre 193 meseci
Radim diplomski na Oraclu 9.i developer suite, forms bilder

Program je za knjižnice.
Na formi za povrat, postavljen je gumb koji nakon unosa id-a (barcod) vrača ime, prezime, datum posudbe.
Isti gumb upisuje datum vračanja, računa zakasninu i upisuje ju u tablicu POSUDBA
Sve radi OK osim dijela koji mora zapisati povrat u tablicu.

dio trigera:
UPDATE POSUDBA
SET DATUM_VRACANJA = datum_vracanja, ZAKASNINA = zakasnina
WHERE POSUDBA.ID_DOKUMENTA = dokument_id AND POSUDBA.DATUM_VRACANJA IS NULL;
commit;

Ako je upisan "commit" pri izvršenju dobijem grešku: FRM-40508: ORACLE error: unable to INSERT record.

Ako se ne upiše u trigeru "commit", poruka o grešci se ne generira, ali niti upis u bazu.

Napominjem: u treigeru ne postoji INSERT.

Molim pomoć ako ikako može i to što prije. Ovo je posljednje što mi je još ostalo za napraviti, a rok za predaju je utorak...

 
Odgovor na temu

alfa00
Belgrade

Član broj: 173850
Poruke: 12
93.86.61.*



Profil

icon Re: Update iz treigera16.06.2008. u 07:12 - pre 193 meseci
Pretpostavljam da je u pitanju "when button pressed" trigger
Za pocetak proveri koliko redova vraca tvoj upit

select datum_vracanja, zakasnina
from posudba
where POSUDBA.ID_DOKUMENTA = dokument_id AND POSUDBA.DATUM_VRACANJA IS NULL;

proveri da li tu nije problem ako hoces da uradis update jednog sloga a upit vraca malo vise redova. Uzgered commit bi trebao da stoji.
Pozz!
 
Odgovor na temu

aldabic
Serbia

Član broj: 18240
Poruke: 98
*.premiumsoft.co.yu.



Profil

icon Re: Update iz treigera16.06.2008. u 07:28 - pre 193 meseci
kada uradis commit, u bazu se upisuje ne samo taj update koji pominjes, nego i sadrzaj popunjenog bloka (ako je bazni blok).
Kada uradis commit, i kada ti pokaze gresku, stisni kombinaciju CTRL + SHIFT +E, dobices gresku. Verovatno si zaboravila da na formu postavis neko obavezno bazno polje.
 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Update iz treigera16.06.2008. u 10:20 - pre 193 meseci
Pomažem pri radu, ona je sada na fax-u.

u trigeru "when button pressed" selekitraju se određeni podaci. Na formi su samo text edit box-ovi (mislim da se tako zovu, ja radim u drugom jeziku, s drugim alatima), nema niti jednog povezanog s bazom.
Po koracima:
1. Unese se id knjige koja se vraća
2. Prisitkom na button:
3. Selektiraju se podaci o članu i knjizi te upisuju u text box-ove
4. Selektira se datum posudbe, od njega se oduzima current_date te ako je veći od 30, razlika se množi s 0.5 i upisuje u text box kao zakasnina
5. Radi se update sloga u POSUDBA, upisuje se datum povrata i iznos zakasnine

select datum_vracanja, zakasnina
from posudba
where POSUDBA.ID_DOKUMENTA = dokument_id AND POSUDBA.DATUM_VRACANJA IS NULL;

vraća jedan slog.

Bem... ti alat... bem... ti bazu...
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Update iz treigera16.06.2008. u 10:21 - pre 193 meseci
Iz tvog opisa se ne vidi gde se generiše greška (koji triger je generiše).

Prvo što bih ja uradio je da na nivou cele forme napravim triger ON-INSERT koji ima samo komandu null;

Tako ćeš biti sigurna da se neće desiti slučajan insert.
 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Update iz treigera16.06.2008. u 10:36 - pre 193 meseci
Na formu je postavljen samo taj triger.
greška se javi kada se nakun

UPDATE POSUDBA SET ....

doda

COMMIT

ako se COMMIT izostavi, greška se ne javlja.
 
Odgovor na temu

alfa00
Belgrade

Član broj: 173850
Poruke: 12
93.86.61.*



Profil

icon Re: Update iz treigera16.06.2008. u 13:28 - pre 193 meseci
Pogledaj kad pustis formu u run time-u meniju pod help -> display error , mozda dodjemo do greske
Pozz
 
Odgovor na temu

kristina_ksk
Zagreb

Član broj: 184917
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon Re: Update iz treigera17.06.2008. u 00:41 - pre 193 meseci
Problem riješen

Koliko sam sada shvatio: forma, nakon upisa u bilo koji txt field na sebi može biti samo u insert ili qry modu...
Prije sam pokušavao, bez izvršenja qry-a koji bi vratio aktivni podatak napraviti update. Do podataka sam dolazio u trigeru.

Cijelu stvar smo malo okrenuli, najprije vrtimo qry s id_clana i id_knjige, a onda radimo update i commit u WHEN-BUTTON-PRESS treigreu i sve radi ok.

U svako slučaju, hvala na pomoći, a od Oracla se držim što dalje, bar s ovakvim alatima...
 
Odgovor na temu

[es] :: Oracle :: Update iz treigera

[ Pregleda: 2530 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.