wah...I stand corrected :)
ternyata Statement trigger punya kelebihan untuk bisa melihat record2nya,
make sense juga karena dalam 1 session.

Thanks pak Hamid atas koreksinya!

Kalau begitu jawaban pak Sam merupakan solusi buat TS, dengan asumsi 1
database transaksi cuman memprocess 1 NO_TRANS saja.
boleh sebanyak mungkin record asalkan masih dalam NO_TRANS yang sama.


2008/7/18 Awaluddin Hamid <[EMAIL PROTECTED]>:

>   Tetap terlihat koq.. hanya saja kelemahannya yg kebaca di trigger
> statement hanya record terakhir.
> Contoh sederhana dan sedikit uraiannya, saya letakkan di forum (karena
> cukup panjang):
> http://www.indo-oracletech.com/forum/viewtopic.php?f=6&t=214
>
>
> rgds,
> AH
>
> Yoel Susanto wrote:
> >
> > Tidak bisa pak SAM
> > Karena statement trigger anda tidak akan melihat record2 yang belum
> > tercommit.
> > Jadi anda punya NO_TRANS nya juga tidak berguna.
> >
> > Caranya yah salah satu dari 2 :
> > 1. Pakai Array yang menampung tiap2 QTY record baru (sperti yang pak AH
> > bilang)
> > 2. Bikin 1 simple procedure untuk process update, yang dipanggil setelah
> > detail transaksi di COMMIT.
> >
> > 2008/7/17 sam_hidayat <[EMAIL PROTECTED] <sam_hidayat%40yahoo.com>
> > <mailto:sam_hidayat%40yahoo.com <sam_hidayat%2540yahoo.com>>>:
>
> >
> > > Kalau seperti ini bisa ga ya?
> > > CREATE OR REPLACE TRIGGER detil_a_aiud
> > > AFTER INSERT OR UPDATE OR DELETE ON detil_a
> > > DECLARE
> > > v_isi detil_a.isi%type;
> > > v_tot table_b.tot_qty%type;
> > >
> > >
> > > BEGIN
> > > select isi into v_isi from detil_a where
> > > no_trans=detil_a_pkg.v_trans;
> > > select tot_qty into v_tot from tabel_b where
> > > no_trans=detil_a_pkg.v_trans;
> > >
> > > update table_b set tmtgol=v_isi + v_tot
> > > where no_trans=detil_a_pkg.v_trans;
> > >
> > > END;
> > > /
> > >
> > > CREATE OR REPLACE TRIGGER detil_a_biud
> > > before INSERT or UPDATE or DELETE on detil_a
> > > FOR EACH ROW
> > > BEGIN
> > > if deleting then
> > > detil_a_pkg.v_trans :=:OLD.no_trans;
> > > else
> > > detil_a_pkg.v_trans :=:NEW.no_trans;
> > > end if;
> > > END;
> > > /
> > >
> > > CREATE OR REPLACE package detil_a_pkg as
> > > v_trans detil_a.no_trans%type;
> > >
> > > end;
> > >
> >
>  
>



-- 
Cheers,
Yoel Susanto

www.indo-oracletech.com


[Non-text portions of this message have been removed]

Kirim email ke