Gentili,
sto tentanto di applicare il lock pessimistico durante l'aggiornamento di una riga in Ms Access.
Premesso che ho trovato tutti esempi per SqlServer e relativo namespace, etc ho provato ad implementare una routine usando i relativi oggetti oledb:
        public void UseTransactions()
        {
            bool accessoVietato = false;
            using (OleDbConnection connDb = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Luciano\Desktop\dbProva.accdb"))
            {                
                connDb.Open();                
                do
                {
                    //OleDbTransaction transaction = connDb.BeginTransaction(System.Data.IsolationLevel.Serializable); // RITORNA ERRORE
                    OleDbTransaction transaction = connDb.BeginTransaction(System.Data.IsolationLevel.RepeatableRead); // RITORNA ERRORE
   
		       // leggo dalla tabella contatori il campo num_ultimo_ordine
                        contatoriCmd = new OleDbCommand(...., connDb, transaction);
                        
                         // aggiorno nella tabella contatori il campo num_ultimo_ordine (qui dovrebbe bloccare l'aggiornamento il lock)
                        updateCmd = new OleDbCommand(...., connDb, transaction);
                        // inserisco nella tabella testate_ordini il nuovo ordine con Id = num_ultimo_ordine;
                        insertCmd = new OleDbCommand(...., connDb, transaction);
                         
                    try
                    {
                        contatoriCmd.ExecuteQuery();                        
                        updateCmd.ExecuteNonQuery();
                        insertCmd.ExecuteNonQuery();
                                               
                        transaction.Commit();
                        accessoVietato = false;
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        Console.WriteLine(ex.Message);
                        System.Threading.Thread.Sleep(1000);
                        accessoVietato = true;
                    }
                } while (accessoVietato);
            }
        }
    }
L'esempio non è del tutto corretto e coerente, ma in pratica nella realtà voglio effettuare una transazione con più comandi sql, se non vanno a buon termine faccio il rollback e ritento ancora, applicando il locking pessimistico. Purtroppo nella riga dove definisco il tipo di IsolationLevel a Serializable o RepeatableRead mi ritorna un errore 
Messaggio=Impossibile supportare il livello di isolamento specificato o il suo potenziamento.
Se io imposto IsolationLevel con gli altri valori previsti dall'enum non mi dà errore, ma non so a questo punto se il lock pessimistico viene rispettato oppure no.
A voi è capitata una situazione del genere? E' un limite di Oledb?
Eventualmente potrei gestire con un lock ottimistico usando un DataSet?
Grazie in anticipo a chiunque vorrà rispondermi.
Lucius.