Allora nel mio caso ho 5 thread dei quali solo 2 fanno transazioni.
Quindi ho creato due SQLconnection una per ogni thread che fa transazioni, mentre agli altri thread gli passo SQLQry che sono collegati alla prima SQLconnection.
In questa maniera con ADO non ho nessun problema immediato se non il blocco della connessione dopo un lasso di tempo imprecisato.
Con DBexpress invece ho problemi sin da subito.
Comunque il tipo di transazione di cui avrei bisogno è il primo che hai menzionato e con ADO in parte funzionava (fino quando non si bloccava).. una cosa da segnalare è che dava molti errori di Deadlock, se infatti due applicativi provavano a fare la transazione contemporaneamente sulla stessa tabella il primo la effettuava, mentre il secondo attendeva la fine della transazione del primo per darmi un errrore di deadlock... per aggirare il problema io facevo un ciclo che si completava solo quando la transazione riusciva ( gli errori li scriveva in una tabella di controllo ed erano sempre errori di deadlock).
Eppure nella configurazione dell'ODBC gli avevo dato come opzione "Wait" per le transazioni!!