I'm getting the exception:
ORA-01453: SET TRANSACTION must be first statement of transaction
According to the information on the web, I have to Commit( ) before my set
statement. But it didnt fix the problem. My code follows. Any suggestions?
string iPPM = "INSERT INTO pa_project_mast er ... "
string uLPN = "UPDATE pa_control SET last_project_no = '" + lastProjectNo +
"' ";
oraConn.Open();
oraCMD = oraConn.CreateC ommand();
OracleTransacti on oraTrans;
// Start a local transaction
oraTrans = oraConn.BeginTr ansaction(Isola tionLevel.ReadC ommitted);
// Assign transaction object for a pending local transaction
oraCMD.Transact ion = oraTrans;
try
{
oraCMD.CommandT ext = iPPM;
oraCMD.ExecuteN onQuery();
oraTrans.Commit ();
}
catch(Exception ex)
{
oraTrans.Rollba ck();
string temp = ex.ToString();
}
OracleTransacti on oraTrans2;
// Start a local transaction
oraTrans2 = oraConn.BeginTr ansaction(Isola tionLevel.ReadC ommitted);
// Assign transaction object for a pending local transaction
oraCMD.Transact ion = oraTrans2;
try
{
oraCMD.CommandT ext = uLPN;
oraCMD.ExecuteN onQuery();
oraTrans2.Commi t();
}
catch(Exception ex)
{
oraTrans2.Rollb ack();
string temp = ex.ToString();
}
finally
{
oraConn.Close() ;
}
da.Dispose();
oraConn.Close() ;
ORA-01453: SET TRANSACTION must be first statement of transaction
According to the information on the web, I have to Commit( ) before my set
statement. But it didnt fix the problem. My code follows. Any suggestions?
string iPPM = "INSERT INTO pa_project_mast er ... "
string uLPN = "UPDATE pa_control SET last_project_no = '" + lastProjectNo +
"' ";
oraConn.Open();
oraCMD = oraConn.CreateC ommand();
OracleTransacti on oraTrans;
// Start a local transaction
oraTrans = oraConn.BeginTr ansaction(Isola tionLevel.ReadC ommitted);
// Assign transaction object for a pending local transaction
oraCMD.Transact ion = oraTrans;
try
{
oraCMD.CommandT ext = iPPM;
oraCMD.ExecuteN onQuery();
oraTrans.Commit ();
}
catch(Exception ex)
{
oraTrans.Rollba ck();
string temp = ex.ToString();
}
OracleTransacti on oraTrans2;
// Start a local transaction
oraTrans2 = oraConn.BeginTr ansaction(Isola tionLevel.ReadC ommitted);
// Assign transaction object for a pending local transaction
oraCMD.Transact ion = oraTrans2;
try
{
oraCMD.CommandT ext = uLPN;
oraCMD.ExecuteN onQuery();
oraTrans2.Commi t();
}
catch(Exception ex)
{
oraTrans2.Rollb ack();
string temp = ex.ToString();
}
finally
{
oraConn.Close() ;
}
da.Dispose();
oraConn.Close() ;