English
Instant Developer Foundation Documentazione
  • Estensibilità
  • Libreria
  • INDE Extension
  • Transazioni

Commit Transaction

procedura copia link

Scopo

Marca la transazione come conclusa con successo. Prima della chiusura definitiva della transazione, questa procedura scatena l'aggiornamento dell'intero progetto come conseguenza delle modifiche avvenute durante la transazione. Se anche queste ulteriori modifiche avranno successo allora la transazione verrà considerata chiusa con successo.

Sintassi

INDEExtension INDE = null // Oggetto INDE
// 
INDE.CommitTransaction(id transazione)

Argomenti

ID Transazione Puntatore alla transazione da chiudere con successo. Normalmente viene ottenuto tramite la procedura BeginTransaction.

Note

  • Una transazione chiusa con successo può essere annullata anche in seguito chiamando la procedura RollbackTransaction. IN.DE per default mantiene in memoria le ultime 32 transazione chiuse .
  • Se si desidera annullare la transazione prima della chiusura è possibile usare la funzione RollbackTransaction oppure AbortTransaction.

Esempio di codice

// ******************************************
// Rinomina le tabelle e i campi dei database
// ******************************************

public void Parole.Rinomina()
{
  INDEExtension INDE = null   // Oggetto INDE
  INDETreeWalker twDB = new() // TreeWalker per scorrere i database
  int DocID = 0               // Identificativo del documento
  // 
  // Svuoto la tabella IMDB

  delete from Parole
  // 
  // Carico in memoria le parole

  insert into Parole select
    set Parola := Parola
    set Acronimo := Acronimo
  from
    Parole // Tabella Master
  // 
  // Mi connetto ad INDE

  INDE.Connect()
  // 
  // Recupero l'identificativo del documento attivo

  DocID := INDE.GetActiveDocument()
  if DocID > ZERO
  {
    int PrjID = 0 // Identificativo del progetto
    int TrID = 0  // Identificativo della transazione
    // 
    // Recupero l'identificativo del progetto

    PrjID := INDE.GetRootObject(DocID)
    // 
    // Apro una tranzasione

    TrID := INDE.BeginTransaction(DocID)
    // 
    try
    {
      // Inizializzo il TreeWalker per scorrere i database del progetto
      twDB.SetRoot(PrjID, Database, ??, ??, ??)
      while True = True
         ...
      // 
      // Rendo permanenti le modifiche

      INDE.CommitTransaction(TrID)
      // 
      // Valido il documento

      INDE.Validate(INDE.GetActiveDocument())
    }
    catch  // Si è verificato un errore
    {
      // Annullo le modifiche
      INDE.AddTransactionMessage(TrID, PrjID, Errore, MSG Impossibile 2)
      INDE.RoolbackTransaction(TrID)
    }
  }
}

L'esempio di codice è contenuto nella procedura Rinomina dell'esempio del Glossario. Nell'esempio questa funzione viene usata per confermare le modifiche di rinominazione degli oggetti se avvenute con successo.

Ultima modifica: 13/07/2008 / Validità: da 7.1.3300

Vedi Anche

  • Abort Transaction (procedura)
  • Rollback Transaction (procedura)
  • Begin Transaction (funzione)
  • Esempio 1: Gestione del glossario

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum