Atunci cand executia unui trigger esueaza, SQL Forms trece la tratarea
erorii, in functie de tipul triggerului. In lista de mai jos se afla
modurile de tratare a erorilor in functie de tipul triggerului. Pentru o
descriere mai dataliata, consultati "SQL Forms Designers Reverence Version
3.0".
Tipul triggerului Modul de tratare a erorii ------------------------------------------------------------------------- triggere cheie eroarea este ignorata On-Clear-Block eroarea este ignorata On-Database-Record eroarea este ignorata On-Error eroarea este ignorata On-Message eroarea este ignorata On-Remove-Record eroarea este ignorata On-Delete schimbarile in baza de date sunt anulate On-Update schimbarile in baza de date sunt anulate On-Insert schimbarile in baza de date sunt anulate Pre-Delete schimbarile in baza de date sunt anulate Post-Delete schimbarile in baza de date sunt anulate Pre-Insert schimbarile in baza de date sunt anulate Post-Insert schimbarile in baza de date sunt anulate Pre-Update schimbarile in baza de date sunt anulate Post-Update schimbarile in baza de date sunt anulate Pre-Commit schimbarile in baza de date sunt anulate Post-Commit schimbarile in baza de date sunt anulate On-Lock blocarea nu are loc On-New-Record crearea unei noi inregistrari esueaza; daca evenimentul curent este Intra In Bloc, SQL Forms incearca sa mute cursorul la locatia initiala. On-Validate-Field validarea esueaza; SQL Forms seteaza eroarea On-Validate-Record validarea esueaza; SQL Forms seteaza eroarea Pre-Form - Post-Form | Pre-Block |---- SQL Forms incearca sa mute cursorul la Post-Block | pozitia sa initiala Pre-Record | Post-Record | Pre-Field | Post-Field - definit de utilizator depinde de codul procesat de triggerul definit de utilizator in momentul in care esueaza
Scop: Camp, bloc sau forma Numele triggerului Note/Utilizari obisnuite --------------------------------------------------------------------------- On-Clear-Block Utilizat pentru actiuni ce se executa automat de fiecare data cand SQL Forms curata blocul curent in timpul unor evenimente cum ar fi CLEAR_BLOCK. On-Database-Record Folosit pentru a efectua o actiune de indata ce o inregistrare este marcata pentru insertie sau actualizare. On-Error Pentru a efectua revenirea din eroare. Se poate inlocui mesajul de eroare original cu un mesaj al utilizatorului. On-New-Record Pentru generarea de valori implicite dinamice, pentru a umple campurile unei inregistrari noi. On-Remove-Record Utilizata pentru a efectua o actiune de indata ce o inregistrare este marcata pentru stergere. On-Message Pentru a intercepta si raspunde la mesaje de informare. Inlocuieste mesajele implicite cu mesaje ale utilizatorului. On-New-Field-Instance Pentru a efectua o actiune ori de cate ori operatorul introduce un camp. On-Validate-Field Valideaza valori introduse de utilizator. Post-Change NU SE UTILIZEAZA PENTRU VALIDARE. Se foloseste pentru a umple campuri asociate. Pre-Field Pentru a deriva valori complexe implicite. Post-Field Utilizat pentru a calcula/modifica valori ale campurilor, stergere de variaile globale.
Nume Note/ Utilizari frecvente ------------------------------------------------------------------- On-Delete* inlocuieste prelucrarea implicita SQL Forms pentru fiecare inregistrare marcata pentru stergere. Poate fi folosita pentru a marca o inregistrare pentru stergere, permitand scoaterea ei din baza de date la un moment ulterior. On-Insert* Inlocuieste procesarea SQL Forms implicita pentru fiecare inregistrare noua, care in mod normal ar fi trebuit introdusa in baza de date. On-Update* Inlocuieste prelucrarea SQL Forms implicita pentru fiecare inregistrare marcata pentru stergere. *) aceste triggere pot fi utilizate in combinatie pentru a actualiza tabele 'audit'. On-Lock utilizat pentru a inlocui mecanismul implicit de blocare al SQL Forms, pentru a preveni efectuarea de actualizari/stergeri sau pentru a dezactiva complet acest mecanism. On-Validate- Se activeaza cand SQL Forms valideaza o inregistrare noua. Record Utilizata la testarea valorilor in mai multe campuri ale unei inregistrari, deoarece toate valorile sunt prezente in aceasta faza, ca urmare se pot efectua comparatii. Pre-Insert Se activeaza in timpul evenimentelor post, la fiecare Pre-Update introducere/actualizare/stergere a unui rand, INAINTE ca Pre-Delete transformarile sa se reflecte in tabela. Pot fi utilizate ca un ultim test inainte de a schimba valorile din tabela. Post-Insert Se activeaza in timpul evenimentelor post, la fiecare Post-Update introducere/actualizare/stergere a unui rand, DUPA ce Post-Delete transformarile sa reflecte in tabela. Pre-Block Poate fi utilizat pentru a permite accesul la un bloc, pentru extragera valorilor implicite din campurile blocului, sau pentru a initializa variabile globale. Post-Block Utilizat pentru 'post-block housekeeping'. Pre-Record poate folosi la gestionarea 'Running totals', initializarea variabilelor globale. Post-Record Folosit pentru a sterge variabile globale. Pre-Commit Se activeaza la fiecate 'tranzactie', daca urmeaza sa aiba loc transformari. Folosita pentru a introduce conditii de blocare, pentru a valida conditii sau pentru a face schimbarile pe campurile de pe ecran. Post-Commit Se activeaza la fiecate 'tranzactie', chiar daca au sau nu loc schimbari. Poate fi folosit pentru a actualiza tabele 'audit'.
Toate triggerele cheie (cu exceptia Key_Startup sau Key_Others) se activeaza
cand functia corespunzatoare este activata. Ele pot contine proceduri PL/SQL
sau proceduri impachetate ale formei.
Ele respecta aceleasi reguli ca si triggerele eveniment.
Nume Note/Utilizari frecvente -------------------------------------------------------- Key-Startup Actiuni de initializare la intrarea intr-o forma. Poate folosi proceduri impachetate protejate. Este in general preferat lui Pre-Form din aceasta cauza, dar nu are o restrictionare buna a accesului. Key-Others Asociat cu toate cheile care pot avea un trigger cheie asociat, dar inca nedefinit. Se poate folosi pentru a asigna o functie standard pentru toate tastele functionale care nu au definita o actiune. Key_Fn Triggers Aceste triggere se pot atasa celor 10 taste sau combinatii de taste care au fost specificate folosind ORACLE TERMINAL, pentru a se comporta ca taste functionale Forms.