grazie per avermi risposto, però questa pillola di mchorney l'ho scaricata... ho visitato anche i links,ma non ho saputo districarmi nella valanga di informazioni.
Ti chiedo cortesemente un'esempio lato SQL di come gestire le transazioni perchè al momento questo esempio non mi è chiaro:
codice:
BEGIN; 
SELECT Qta FROM Prodotti WHERE IdProdotto=123; 
UPDATE Prodotti SET Qta=Qta-3 WHERE IdProdotto=123; 
//A questo punto A decide di controllare quanti articoli con IdProdotto=123 sono presenti con una select 
SELECT Qta FROM Prodotti WHERE IdProdotto=123; 
A questo punto anche B vuole fare il suo ordine e fa una select per controllare che la quantità di merce di cui necessita sia disponibile: 

SELECT Qta FROM Prodotti WHERE IdProdotto=123; 
Se a questo punto B decidesse di fare la seguente update per rendere effettivo il suo ordine: 

UPDATE Prodotti SET Qta=Qta-8 WHERE IdProdotto=123 (3) 

Questa (B) verrebbe immediatamente sospesa perché il record in questione è bloccato (A sta eseguendo la transazione avviata col comando BEGIN). Il meccanismo di lock sul record si chiama row level locking. 

Quindi B deve attendere che il record sia sbloccato e questo avviene quando A invia il comando COMMIT che provoca la scrittura dei dati nel db. 

A questo punto B può eseguire la query (3) che era stata messa in standby. 
Infatti se ora facciamo: 

SELECT Qta FROM Prodotti WHERE IdProdotto=123; 

Ci verrà ritornato 7 e non più -1.
In pratica l'inizio della gestione di una transazione è il BEGIN e alla fine di tutte le operazioni SQL dovrei inserire COMMIT?

Grazie per la risposta