Pagina 1 di 1

Come capisco se sono in INSERT o in UPDATE?

Inviato: 03 mag 2021, 10:04
da GabrieleCL
Ho creato un FORM come griglia editabile.
Nel mio DB la tabella ha un campo "DATETIME_UPDATE" che memorizza l'ultimo aggiornamento al record.
Nel FORM di SC vorrei proporre in un certo campo, il valore dell'ultimo record memorizzato.
Creo una routine che fa, sostanzialmente:
SELECT campo FROM tabella LIMIT 1 ORDER BY datetime_update DESC
ed inserisco il valore di "campo" nella FORM SC.

1) In quale evento dovrei inserire la routine? OnRecord?

2) La routine dovrebbe essere eseguita solo in fase di inserimento di una nuova riga e non in caso di aggiornamento. Come capisoco in quale fase sono?
Ho provato sc_btn_new ma non pare fare al caso mio.

Grazie

Re: Come capisco se sono in INSERT o in UPDATE?

Inviato: 03 mag 2021, 12:07
da Fabio
Ciao, dovrebbe andare bene l'evento "onBeforeInsert".
Questo evento viene eseguito solo all'inserimento.

Re: Come capisco se sono in INSERT o in UPDATE?

Inviato: 03 mag 2021, 18:50
da GabrieleCL
Non va bene l'evento onBeforeInsert come non vanno bene gli altri eventi perchè si riferiscono alla INSERT o UPDATE nel DB e quindi dopo che l'utente li ha confermati.
Per intervenire prima che l'utente faccia l'input dei dati bisogna creare un Evento ajax sul campo di input con il seguente codice:

if(empty({id}))
{
echo "Nuovo<br>";
} else {
echo "Aggiorna<br>";
}

{id} è la primary key della tabella, impostata come auto_increment.
{id} deve essere tra i campi del FORM, anche se nascosta.

Spero che sia utile a qualcuno.
Se ci sono altre soluzioni, ben vengano.