Apri transazione

Avvia una transazione; le modifiche dei record successive vengono mantenute nella transazione fino a che viene eseguita un'istruzione di script Salva transazione o Annulla transazione.

Nota  Le transazioni sono gestite nella finestra di origine. Le azioni effettuate in finestre diverse da quella della transazione di origine verranno salvate automaticamente al di fuori delle transazioni esistenti.

Opzioni 

  • Salta le opzioni di immissione automatica ignora le opzioni campo impostate per l'immissione automatica dei dati. Quando questa opzione è deselezionata, le opzioni di immissione automatica vengono eseguite nei campi per tutti i record nuovi o modificati solo quando viene raggiunta l'istruzione di script Salva transazione. Vedere Definizione dell'immissione automatica dei dati.

  • Non eseguire verifica dati inseriti ignora tutte le opzioni di verifica dei dati inseriti impostate per i campi e il record viene comunque salvato. Questa opzione salta solo la convalida di campi impostati con l'opzione Solo durante l'immissione dei dati nella finestra di dialogo Opzioni per il campo; i campi impostati su Convalida sempre continueranno a convalidare, anche se l'opzione Non eseguire verifica dati inseriti è selezionata. Vedere Definizione della verifica dei campi.

  • Ignora conflitti di protezione ESS consente ai client di origini dati ODBC di forzare il salvataggio delle modifiche se il blocco ottimistico impedisce di salvare i dati. Le origini dati ODBC vengono anche chiamate origini SQL esterne (ESS).

Compatibilità 

Prodotto Supportata
FileMaker Pro
FileMaker Go
FileMaker WebDirect
FileMaker Server
FileMaker Cloud
FileMaker Data API
Pubblicazione Web personalizzata

Creata nella versione 

19.6.1

Descrizione 

Una transazione consiste in modifiche a uno o più record nella finestra corrente. Le modifiche in una transazione possono influire su più tabelle in più file di database. Tutte le modifiche in una transazione vengono salvate insieme o, se si verifica un errore, annullate insieme. Una transazione inizia con un'istruzione di script Apri transazione. Dopo aver avviato una transazione, le modifiche dei record successive vengono mantenute nella transazione fino a che viene eseguita un'istruzione di script Salva transazione o Annulla transazione. Le istruzioni qui di seguito possono modificare i record memorizzati nello schema dei database ed essere utilizzate come istruzioni di script transazionali.

Quando si aggiunge un'istruzione di script Apri transazione a uno script, viene automaticamente accoppiata l'istruzione di script Salva transazione.

Le transazioni:

  • Provano a uscire dal record attualmente attivo e a salvare eventuali modifiche al suo interno, prima di procedere. Se non è possibile uscire dal record attivo, Apri transazione restituisce un errore e le istruzioni di script all'interno della transazione vengono saltate.

  • Combinano le modifiche a uno o più campi o tabelle come un unico set di modifiche

  • Salvano o annullano un intero set di modifiche

  • Raggruppano le modifiche a campi o tabelle tra le istruzioni di script Apri transazione e Salva transazione

  • Consentono di creare un set di modifiche più affidabile

  • Possono essere annullate automaticamente utilizzando l'istruzione di script Annulla transazione

  • Vanno a buon fine (salvataggio) o falliscono (annullamento) come gruppo

  • Vanno a buon fine quando sono state rispettate le regole dello schema

  • Vengono annullate automaticamente quando non sono state rispettate le regole dello schema

  • Opzionalmente possono saltare le impostazioni di verifica e ignorare gli annullamenti automatici se le regole dello schema non sono state rispettate. Ignorare le regole dello schema può compromettere l'integrità della transazione.

  • Sono modificate in un file temporaneo locale prima che l'istruzione di script Salva transazione salvi le modifiche al file principale

Le transazioni eseguono automaticamente il salvataggio e terminano quando:

  • Vengono utilizzate le seguenti finestre di dialogo: Gestisci database, Gestisci Contenitore o Gestisci origine dati

  • Vengono eseguite le seguenti azioni o istruzioni di script: Salva copia con nome o Nuovo accesso

  • Il file viene chiuso

Per impostazione predefinita, le transazioni vengono annullate automaticamente quando:

  • Sono presenti errori dello schema irrisolti prima di avviare una transazione. In questo caso le transazioni sono saltate automaticamente.

  • Una modifica a un campo, impostato per eseguire sempre la verifica, non corrisponde alle opzioni di verifica del campo

  • Viene utilizzata l'istruzione di script Annulla transazione

  • Viene annullato uno script

  • L'istruzione di script Arresta Script è utilizzata in una transazione

  • Viene annullato uno script utilizzando lo Script Debugger

  • Sono presenti errori a livello dei privilegi come nessun accesso a campi, record e tabelle

Per controllare se le transazioni vengono annullate automaticamente quando si verificano determinati errori, utilizzare l'istruzione di script Imposta Annulla transazione su Errore.

Note 

  • Transazioni nidificate:

    • Non sono consentite all'interno dello stesso script (l'Area di lavoro script impedisce di inserire una transazione all'interno di un'altra)

    • Possono essere approssimate aprendo una transazione in uno script principale, quindi utilizzando l'istruzione di script Esegui script per richiamare un subscript. Tutto ciò che si trova all'interno del subscript viene eseguito nell'ambito della transazione attualmente aperta. Se il subscript contiene le istruzioni Apri transazione e Salva transazione, queste vengono saltate e viene restituito l'errore 3 ("Comando non disponibile"), ma tutto ciò che si trova prima, tra e dopo queste istruzioni nel subscript viene eseguito all'interno della transazione dello script principale. Se il subscript include un'istruzione Annulla transazione, può annullare la transazione dello script principale e passare all'istruzione Salva transazione corrispondente della transazione, vedere Esempio 4.

  • L'azione Elimina il record, quando utilizzata all'interno di transazioni, elimina un record alla volta.

  • L'azione Vuota tabella non può essere annullata.

  • L'azione Importa record non mostra un riassunto quando utilizzata all'interno di transazioni.

  • L'istruzione di script Annulla transazione non annulla il valore di immissione automatica Incremento Seriale.

  • L'opzione Salva le modifiche ai record automaticamente in Impostazione formato viene ignorata durante le transazioni.

  • Le modifiche effettuate dall'istruzione di script Esegui FileMaker Data API non sono incluse nella transazione dello script. Qualsiasi operazione completata all'interno di questa istruzione di script, anche se integrata in una transazione, non sarà annullata.

  • Per verificare se una transazione è attualmente aperta, utilizzare la funzione Get ( StatoAperturaTransazione ).

Esempio 1 

Apre e salva una transazione.

Copia
Apri transazione []
    Apri record/richiesta
    Imposta campo [ Beni::Descrizione ; "testo descrittivo" ] Salva transazione

Esempio 2 

Apre e salva una transazione senza verificare i dati inseriti.

Copia
Apri transazione [ Non eseguire verifica dati inseriti ]
    Apri record/richiesta
    Imposta campo [ Beni::Descrizione ; "testo descrittivo" ] Salva transazione

Esempio 3 

Apre e salva una transazione senza protezione ESS.

Copia
Apri transazione [ Ignora conflitti di protezione ESS ]
    Apri record/richiesta
    Imposta campo [ Beni::Descrizione ; "testo descrittivo" ] Salva transazione

 

Esempio 4

Lo script principale apre una transazione, imposta CampoTesto, quindi richiama un subscript. Poiché il subscript viene richiamato mentre una transazione è già aperta, la sua istruzione Apri transazione viene saltata, CampoTesto viene impostato su un valore diverso, quindi viene valutata la condizione nell'istruzione Annulla transazione.

Se CampoNumero è 1, la transazione corrente (aperta nello script principale) viene annullata. L'istruzione Salva transazione del subscript viene saltata, quindi il controllo torna all'istruzione Salva transazione dello script principale, saltando le istruzioni dopo Esegui script. Al termine dello script principale, il valore di CampoTesto rimane invariato.

Se CampoNumero è 0, il subscript non annulla la transazione, quindi il controllo torna all'istruzione dopo Esegui script, dove CampoTesto è impostato su abc123 e la transazione viene salvata.

Script principale

Copia
Apri transazione [ ]
    Imposta campo [ Tabella::CampoTesto ; "abc" ]
    Esegui script [ Specificato: Da elenco ; "Subscript" ; Parametro: ]
    Imposta campo [ Tabella::CampoTesto ; "abc123" ]
Salva transazione

Subscript

Copia
Apri transazione [ ]
    Imposta campo [ Tabella::CampoTesto ; "xyz456" ]
    Annulla transazione [ Condizione: Tabella::CampoNumero = 1 ]
Salva transazione