OLE DB Transaction

venerdì 30 marzo 2007 - 16.03

AntCiar Profilo | Expert

Salve a tutti.
Nella mia applicazione sto tentando di gestire le transazioni.

Ho dichiarato una Connessione Statica e una Transazione Statica

private static OleDbTransaction OLETransact;
public static OleDbConnection accessconn = new OleDbConnection();

Quando devo usare la transazione invoco il metoto "BegniTransactio" da me fatto che ha la il seguente contenuto:

public static void BeginTransaction()
{
if (accessconn.ConnectionString == "")
{
ACCESSopenconnection();
}
if (accessconn.State == ConnectionState.Closed)
{
accessconn.Open();
}
OLETransact = accessconn.BeginTransaction();
OLETransact.Begin();
}

Quando invece devo eseguire i comandi uso il metodo "RunSQLCommand" sempre da me fatto:

public static bool runSQLCommand(string sqlCommand)
{
try
{
if (accessconn.ConnectionString == "")
{
ACCESSopenconnection();
}
if (accessconn.State == ConnectionState.Closed)
{
accessconn.Open();
}
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = accessconn;
cmd.CommandText = sqlCommand;
cmd.Transaction = OLETransact;
cmd.ExecuteNonQuery();
cmd = null;
return true;
}
catch (OleDbException ex)
{
XtraMessageBox.Show("run ACCESS command - " + sqlCommand + " - Error description: " + ex.Message);
return false;
}
}


Quello che succede è questo: quando eseguo la seguente successione di chiamate

BeginTransaction();
runsqlcommand("DELETE * FROM tabella);

mi va in eccezione il metodo "RunSqlCommand" e mi da il seguente messaggio:

"The transaction assigned to this command must be the most nested pending local transaction."

Qualcuno mi saprebbe dire perchè non funziona?
Grazie.



Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5