Ho scritto il seguente codice che dovrebbe andare ascrivere su una tabella del server(in questo momento in locale su un DB access)
Sto provando la Transaction con Commit e Rollback.
Ho scritto questo e sembra che funziona almeno il Commit.
Domanda: Ma il rollback serve a riprovare l' insert oppure ad annullarlo?
In realtà io voglio sapere se l' operazione è andata a buon fine oppure se c' è da rilanciare l'insert perchè il server magari ha avuto problemi o per casi di Timeout.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim pippo
pippo = TextBox1.Text.ToString
Dim transaction As OleDbTransaction
' Start a local transaction
'transaction = MyConnessione.BeginTransaction("SampleTransaction")
transaction = MyConnessione.BeginTransaction()
Try
strSQL = "INSERT INTO " & "tbl" &
"([Numero],[Descrizione]) " &
"VALUES (?,?)"
Dim cmdCommand As OleDbCommand = New OleDbCommand(strSQL, MyConnessione)
' Must assign both transaction object and connection
' to Command object for a pending local transaction.
cmdCommand.Transaction = transaction
cmdCommand.Parameters.Add(New OleDbParameter("@AAA", OleDbType.VarChar)).Value = "0" 'Trim(Carrello_Numero_Letto) '21 gennaio 2019
cmdCommand.Parameters.Add(New OleDbParameter("@BBB", OleDbType.VarChar)).Value = Trim(pippo) '21 gennaio 2019
cmdCommand.ExecuteNonQuery()
transaction.Commit()
Catch ex As Exception
transaction.Rollback()
FileClose(1)
FileOpen(1, "LOG Errori" & ".txt", OpenMode.Append, , , ) 'Open "ParametriTest.ini" For Input As 1
PrintLine(1, ex.Message & " Non riesco a connettermi alla Tabella ")
FileClose(1)
FileClose(1)
FileOpen(1, "Trace" & ".txt", OpenMode.Append, , , ) 'Open "ParametriTest.ini" For Input As 1
PrintLine(1, strSQL)
FileClose(1)
End Try
End Sub