PDA

View Full Version : Problema urgente sui trigger con Oracle


gabriele81
14-11-2003, 14:09
Sto sviluppando per un esame un'applicazione che gestisce un'agenzia di viaggi, questa si interfaccia con una base dati creata con Oracle 9i Lite, abbiamo creato dei trigger ma non riusciamo a farli funzionare.

Ad esempio ho questa tabella (già popolata):

CREATE TABLE POSTO_PRENOTATO (
PERSONA VARCHAR (200),
CLIENTE VARCHAR (200) not null,
PROGRAMMA VARCHAR (200),
DATAP DATE,
DATAPRENO DATE not null,
primary key (PERSONA, DATAP, PROGRAMMA )
)

e ho creato questa stored procedure che serve a diminuire il numero di posti prenotati in un viaggio in caso venga cancellata una prenotazione:

public class TriggerPosto {

public void cambiaDisponibilita( Connection conn,
java.sql.Date datap, String programma ) throws SQLException {
conn.setAutoCommit(false);
conn.setTransactionIsolation(conn.TRANSACTION_SERIALIZABLE);

Statement stmt = conn.createStatement();
stmt.executeUpdate( "UPDATE VIAGGIO SET NRPRENO = NRPRENO - 1" +
" WHERE DATAP = " + datap +
" AND PROGRAMMA = '" + programma + "'");

conn.commit();
conn.setAutoCommit(true);
conn.setTransactionIsolation(conn.TRANSACTION_READ_COMMITTED);

stmt.close();
}
}

Ho attaccato la classe compilata alla tabella in questo modo:

ALTER TABLE POSTO_PRENOTATO ATTACH JAVA CLASS "TriggerPosto"
IN 'percorso_della_classe_nel_file_system';

e fin qui tutto ok, però poi quando vado a creare il trigger così

CREATE TRIGGER CAMBIA_DISP AFTER DELETE ON POSTO_PRENOTATO
POSTO_PRENOTATO."cambiaDisponibilita"(old.datap, old.programma);

mi viene fuori un errore sql che dice "nessun attributo o metodo di questo tipo". :confused:
Purtroppo questo problema ce l'abbiamo con quasi tutti i trigger del progetto...
Qualcuno che mi possa dare una mano?

gabriele81
14-11-2003, 18:03
Ammazza, nemmeno una visita...lo so che i trigger fanno schifo, però...nessuno?

gabriele81
15-11-2003, 20:42
:cry: :cry: :cry: