Denton81 ha scritto:
Ciao,
Forse ti converrebbe spostare la tecnologia di accesso ai Dati in un Service Component .net, e lasciar gestire la transazionalità al COM+.
Mi sembra più sicura come tecnica.
A presto..
Stefano
Scusate, vi riporto ciò che ho scritto, ma non funziona.
Public Sub UpdateNCbyID_2(ByVal clsNC As NC_cls, ByVal con As String, ByVal ds As DataSet, ByVal da As DataAdaptersCorrectivePreventive)
Dim myTrans As System.Data.OleDb.OleDbTransaction
OleDbDARegistroNC.UpdateCommand.Parameters("ID").Value =23 OleDbDARegistroNC.UpdateCommand.Parameters("Name").Value ="PIPPO"
Try
OleDbConnNC.ConnectionString = con
OleDbDARegistroNC.UpdateCommand.Connection.Open()
'Assengo al nuovo gestore transazioni la transazione della connessione corrente
myTrans = OleDbConnNC.BeginTransaction
OleDbDARegistroNC.UpdateCommand.Transaction = myTrans
OleDbDARegistroNC.UpdateCommand.ExecuteNonQuery()
da.UpdateCorrectionPrev_1(ds, myTrans)
da.UpdateCorrectionPrev_2(ds, myTrans)
myTrans.Commit()
Catch ex As Exception
myTrans.Rollback()
Err.Raise(vbObjectError + 1, , "UpdateNCbyID - " & ex.Message.ToString)
Finally
OleDbDARegistroNC.UpdateCommand.Connection.Close()
End Try
End Sub
Public Sub UpdateCorrectionPrev_1(ByVal ds As DataSet, ByVal Trans As System.Data.OleDb.OleDbTransaction)
'aggiorno il database con il corrente dataset
OleDbDACorrPrev_1.UpdateCommand.Transaction = Trans
OleDbDACorrPrev_1.InsertCommand.Transaction = Trans
OleDbDACorrPrev_1.DeleteCommand.Transaction = Trans
OleDbDACorrPrev_1.Update(ds, "Tabella_1")
End Sub
Public Sub UpdateCorrectionPrev_2(ByVal ds As DataSet, ByVal Trans As System.Data.OleDb.OleDbTransaction)
'aggiorno il database con il corrente dataset
OleDbDACorrPrev_2.UpdateCommand.Transaction = Trans
OleDbDACorrPrev_2.InsertCommand.Transaction = Trans
OleDbDACorrPrev_2.DeleteCommand.Transaction = Trans
OleDbDACorrPrev_2.Update(ds, "Tabella_2")
End Sub
L'errore è il seguente:
"Riferimento a un oggetto non impostato su un'istanza di oggetto."
Non so più cosa fare.