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)
//
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)
}
}
}
// 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