RicorDiario .NET

Metodo ExecuteNonQuery () con transazione ODBC
Problema: ExecuteNonQuery | ExecuteReader | ExecuteScalar richiede che il comando abbia una transazione quando la connessione assegnata al comando è in una transazione locale in sospeso. La proprietà Transaction del comando non è stata inizializzata
La soluzione sta nell'impostare la proprietà Transaction dell'oggetto di classe OdbcCommand con l'oggetto OdbcTransaction usato per gestire la transazione.
Esempio:
OdbcTransaction OT;
        OT = MyConn.BeginTransaction();
		try{
			Stmt = MyConn.CreateCommand();
			Stmt.CommandText = MySql.ToString();
            Stmt.Transaction = OT;
			Stmt.ExecuteNonQuery();
			} catch(Exception SQLE) {
				throw new Exception("Errore in spesa_ricorrente.insert(): " + SQLE.ToString());
		}
		//		 Prelievo dell'identity
		try{
		Stmt.CommandText="SELECT max(ID) FROM spesa_ricorrente";
			ResSet = Stmt.ExecuteReader();
			OT.Commit();
			} catch(Exception SQLE) {
				 OT.Rollback();
				throw new Exception("Errore in spesa_ricorrente.insert() durante la lettura dell'ID dell'oggetto." + SQLE.ToString());
		}
Inserisci un commento   |   Indietro

  [da 1 a 0 di 0 commenti]     |   Indietro

Inserisci un commento

Nick: e-mail:

web:

Commento: