Anzi, in realtà ho appena capito dov'è il problema: è in quel
db.close();
se lo metto all'interno del ciclo for non ottengo più quell'errore in fase di inserimento di un'offerta, però lo ottengo quando quel metodo viene richiamato nella pagina che mostra il valore massimo di un'offerta, anzi ottengo un errore diverso, che mi dice (giustamente) che il db è stato già chiuso e quindi c'è stato un "illegal access".
In pratica penso che per aggirarlo dovrei fare in modo che il db.close() viene eseguito all'interno del ciclo for solo DOPO che è stato trovato il valore max. Come faccio a dirgli: fai questo solo se hai trovato il valore massimo? Lui come fa a sapere qual'è il massimo se non ha finito di scorrere l'array?