Hi,
I am having a problem trying to use transaction for updating my Access databases. I used both transaction and no transaction and I get the same run time.
Below is a sample of my code with transaction processing:
Dim Transaction As OleDbTransaction = cnnNew.BeginTransaction
strSQL = "INSERT INTO FI(" & _
"[TGSN], " & _
"[MEAS_PRD], " & _
"[BASE_YEAR], " & _
"[REQ_MO1], " & _
"[REQ_TRKS1], " & _
"[REQ_MO2], " & _
"[REQ_TRKS2], " & _
"[REQ_MO3], " & _
"[REQ_TRKS3], " & _
"[REQ_MO4], " & _
"[REQ_TRKS4], " & _
"[REQ_MO5], " & _
"[REQ_TRKS5], " & _
"[REQ_MO6], " & _
"[REQ_TRKS6]) " & _
"VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
Using cmd As New OleDbCommand(strSQL, cnnNew)
cmd.Transaction = Transaction
cmd.Parameters.AddWithValue("TGSN", Downloaded_Rec_FI.tgsn)
cmd.Parameters.AddWithValue("MEAS_PRD", Downloaded_Rec_FI.meas_prd)
cmd.Parameters.AddWithValue("BASE_YEAR", Downloaded_Rec_FI.Base_Year)
cmd.Parameters.AddWithValue("REQ_MO1", arrForecastYears(0).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS1", arrForecastYears(0).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO2", arrForecastYears(1).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS2", arrForecastYears(1).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO3", arrForecastYears(2).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS3", arrForecastYears(2).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO4", arrForecastYears(3).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS4", arrForecastYears(3).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO5", arrForecastYears(4).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS5", arrForecastYears(4).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO6", arrForecastYears(5).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS6", arrForecastYears(5).Req_Trks)
cmd.ExecuteNonQuery()
End Using
[other processing]
Transaction.Commit()
We changed our code from ADODB to OLEDB and we have notice an increase in processing time therefore we have tried to using Transaction.
Any help would be greatly appreciative.
I am having a problem trying to use transaction for updating my Access databases. I used both transaction and no transaction and I get the same run time.
Below is a sample of my code with transaction processing:
Dim Transaction As OleDbTransaction = cnnNew.BeginTransaction
strSQL = "INSERT INTO FI(" & _
"[TGSN], " & _
"[MEAS_PRD], " & _
"[BASE_YEAR], " & _
"[REQ_MO1], " & _
"[REQ_TRKS1], " & _
"[REQ_MO2], " & _
"[REQ_TRKS2], " & _
"[REQ_MO3], " & _
"[REQ_TRKS3], " & _
"[REQ_MO4], " & _
"[REQ_TRKS4], " & _
"[REQ_MO5], " & _
"[REQ_TRKS5], " & _
"[REQ_MO6], " & _
"[REQ_TRKS6]) " & _
"VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
Using cmd As New OleDbCommand(strSQL, cnnNew)
cmd.Transaction = Transaction
cmd.Parameters.AddWithValue("TGSN", Downloaded_Rec_FI.tgsn)
cmd.Parameters.AddWithValue("MEAS_PRD", Downloaded_Rec_FI.meas_prd)
cmd.Parameters.AddWithValue("BASE_YEAR", Downloaded_Rec_FI.Base_Year)
cmd.Parameters.AddWithValue("REQ_MO1", arrForecastYears(0).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS1", arrForecastYears(0).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO2", arrForecastYears(1).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS2", arrForecastYears(1).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO3", arrForecastYears(2).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS3", arrForecastYears(2).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO4", arrForecastYears(3).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS4", arrForecastYears(3).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO5", arrForecastYears(4).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS5", arrForecastYears(4).Req_Trks)
cmd.Parameters.AddWithValue("REQ_MO6", arrForecastYears(5).Req_Mo)
cmd.Parameters.AddWithValue("REQ_TRKS6", arrForecastYears(5).Req_Trks)
cmd.ExecuteNonQuery()
End Using
[other processing]
Transaction.Commit()
We changed our code from ADODB to OLEDB and we have notice an increase in processing time therefore we have tried to using Transaction.
Any help would be greatly appreciative.