Sto sviluppando per diletto un'applicazione in C# che si connette ad un db access che però è su un'altra macchina a cui
mi connetto tramite VPN. Per ora la connessione funzika.
Voglio sviluppare le query INSERT e UPDATE, quando sono da sole ma anche quando sono una dopo l'altra, in Transazione.
Sto utilizzando un esempio trovato qui:"carlovecchio.altervista.org/c----lavorare-con-i-database-access-accdb.html"
Volevo farmi dire da voi .... se ho capito la logica della transazione:
string q = "Insert into Ricetta (NomeRicetta, Descrizione, CodiceProdottoFinito, UdmFinito, CostoUnitario) values ('" + TBName.Text.Replace("'", "''") + "', '" + TBDescrizione.Text.Replace("'", "''") + "', '" + TBCodice.Text.Replace("'", "''") + "', '" + CBUM.Text.Replace("'", "''") + "', '" + TBCosto.Text.Replace("'", "''") + "')";
Database.TransazioneBegin();
try
{
int r = d.EseguiQueryNonSelect(q);
Database.TransazioneCommit();
if (r > 0)
{
MessageBox.Show("Nuova ricetta aggiunta correttamente.", "Aggiungi Ricetta", MessageBoxButtons.OK, MessageBoxIcon.Information);
Popola();
TBName.Text = "";
TBDescrizione.Text = "";
TBCosto.Text = "";
TBCodice.Text = "";
CBUM.SelectedIndex = -1;
CBUM.Text = "";
CBElenco.SelectedIndex = -1;
CBElenco.Text = "";
}
}
catch (Exception ex)
{
try
{
Database.TransazioneRollback();
}
catch (Exception exR)
{
MessageBox.Show(exR.Message);
}
}
Non ho ben capito qual è la sequenza di operazioni eseguite se la querynonselect dovesse andare storta. Quando viene eseguita la rollback? Ho capito bene che la rollback ripristina lo stato del database all'istantanea fatta prima del transazionebegin?
Grazie