English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Libreria Database
  • Libreria Standard
  • Transazioni

Begin Transaction

procedura copia link

Scopo

Questa procedura comunica al DBMS di aprire una nuova transazione.

Sintassi

Database.BeginTransaction()

Esempio di codice

// *****************************
// Esegue il commit di un ordine
// *****************************

public void NuovaVideata.Docommit()
{
  int quant = 0 // 
  // 
  // Apro la transazione

  Dbesempidp.BeginTransaction()
  // 
  // ciclo su tutti gli ordini

  for each row (Ordine)
  {
    record Record
      int IdordineOrdined     // 
      int IdcomponenteOrdined // 
      int QuantitaOrdined     // 
    // 
    // Leggo la quantità presente in magazzino

    select into variables
      set quant := Quantita
    from
      Componenti // Tabella Master
    where
      ID = Record.IdcomponenteOrdined
    // 
    if quant >= Record.QuantitaOrdined
    {
      // inserisco la riga dell'ordine
      insert values into Ordini
         set ID := Record.IdordineOrdined
         set IDComponente := Record.IdcomponenteOrdined
         set Quantita := Record.QuantitaOrdined
    }
    else  // errore: rollback e avverto
    {
      Dbesempidp.RollbackTransaction()
      Esempidp.MessageBox(FormatMessage(MSG Prodotto Codice, Record.
         IdcomponenteOrdined, ??, ??, ??, ??))
      // 
      // esco dalla procedura

      return
    }
  }
  // 
  // Eseguo il commit: la transazione è andata a buon fine

  Dbesempidp.CommitTransaction()
  // 
  // Creo il nuovo numero di ordine

  Esempidp.Randomize()
  this.Ordinenum := Trunc(Random(??) * C10000, ZERO)
  // 
  // Elimino i dati dell'ordine dalla tabella IMDB

  delete from Ordinet
  // 
  // Aggiorno le icone

  update Components
    set Selected := ZERO
  // 
  Esempidp.MessageBox(MSG Ordine Eseguito)
}
  • Questa istruzione apre una transazione, deve essere chiamata prima di qualunque modifica ai dati. Per riferimenti relativi alla sequenza di operazioni da eseguire vedere l'articolo Transaction Statements.
  • Questa procedura deve essere chiamata sul DB e non sull'applicazione.

Ultima modifica: 23/03/2021 / Validità: da 6.5.2680

Vedi Anche

  • Commit Transaction (procedura)
  • Rollback Transaction (procedura)
  • Transazioni

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum