+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

[Interbase] Trigger

  1. #1
    Albertomac non è in linea Novello
    Salve, ho creato un trigger con Interbase per il mio DB ma non capisco perchè non fa ciò che credo che debba fare, cioè attivarsi quando inserisco un record. Eccovi il Trigger

    CREATE TRIGGER "CALCOLI" FOR "DOCUMENTI" 
    ACTIVE BEFORE INSERT POSITION 0
    AS
    
    begin
    new."IMPONIBILE_IVA"=new."IMPONIBILE" * new."IVA" /100;
    new."TOTALE"=new."IMPONIBILE" + new."IMPONIBILE_IVA";
    new."SALDO"=new."TOTALE";  
    end
    
    Cosa sbaglio?

  2. #2
    L'avatar di Cteniza
    Cteniza non è in linea Amanuense
    Se non vado errato i triggers before agiscono prima delle modifiche effettive dei dati.
    Scritto in quel modo credo che non funzioni in quanto deve fare riferiemento all'alias "old" per i dati inseriti dall'operatore.
    ℹ️ Leggi di più su Cteniza ...

  3. #3
    Albertomac non è in linea Novello
    ma old non si usa solo quando è UPDATE o DELETE?
    Il trigger l'ho fatto con Interbase non a "mano" e infatti il tasto OLD per inserire un campo è inattivo quando è INSERT

  4. #4
    L'avatar di Cteniza
    Cteniza non è in linea Amanuense
    Allora devi testare after
    ℹ️ Leggi di più su Cteniza ...

  5. Il codice mi sembra corretto.
    É giusto usare NEW perché nella BEFORE INSERT non esistono valori OLD.
    Potresti essere più chiaro?
    Indica anche come sono definiti i campi. Ammettono valori NULL? Che valori inserisci? Che valori ti aspetti?
    Ci sono altri trigger in POSITION 0 o successive?
    ℹ️ Leggi di più su cyberlaundry ...

  6. #6
    Albertomac non è in linea Novello
    Con quel codice, essendo i campi NOT NULL, se non inserivo nessn valore nei campi, non mi faceva completare l'inserimento!
    Con AFTER al posto di BEFORE accade lo stesso ma il Trigger si attiva e aggiorna i campi.
    Quello che mi aspettavo era che i calcoli li facesse in automatico mentre digitavo i valori, ma leggendo in giro ho capito che non servono a questo...

  7. Quote Originariamente inviato da Albertomac Visualizza il messaggio
    Con quel codice, essendo i campi NOT NULL, se non inserivo nessn valore nei campi, non mi faceva completare l'inserimento!
    Per la miseria, allora non è che "non fa ciò che credo che debba fare", ma ricevevi un chiaro errore di valore NULL non ammesso!!!
    Più preciso, la prossima volta!
    ℹ️ Leggi di più su cyberlaundry ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Trigger Mysql
    Da rbarbato nel forum MySQL
    Risposte: 7
    Ultimo Post: 09-03-2016, 11:03
  2. Risolto: Problema con trigger
    Da piero50 nel forum MySQL
    Risposte: 3
    Ultimo Post: 23-07-2012, 16:34
  3. Java Trigger
    Da Uccio87 nel forum Java
    Risposte: 0
    Ultimo Post: 07-10-2010, 12:01
  4. Trigger Access
    Da licetinsanire nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 07-06-2010, 10:09
  5. Risposte: 4
    Ultimo Post: 03-07-2007, 12:45