Originariamente inviata da
alka
Innanzitutto, se non volevo perdere tempo, evitavo di 1) leggerti di nuovo, 2) cercare di capirti, 3) porti le stesse domande che ti sono già state rivolte per chiarire.
Sul "prendere tempo" invece sorvolo, in quanto non mi serve assolutamente: non sei un mio cliente e non sono tenuto a darti alcun servizio garantito, se permetti, e qualora ti si dia una mano, sei tu a doverti sforzare di fornire tutte le info necessarie visto che - fino a prova contraria - il problema è tuo, non mio.
Se il codice non fa quello che vuoi, evidentemente un errore c'è, altrimenti il programma funzionerebbe.
Questo è forse l'unico punto fermo che si può dare per assodato.
No, perché il risultato non è casuale: da qualche parte c'è senz'altro un passaggio in cui viene memorizzato un valore diverso da quello atteso, ma è analizzando il programma durante l'esecuzione che consente di vedere in ogni momento cosa si sta assegnando e come cambiano i valori all'interno dell'applicazione.
Il debug non è pensato per risolverti autonomamente il problema, ma per consentirti di verificare quello che succede.
Il tuo codice prende il valore di un campo, a esso somma un altro valore e infine lo salva.
E' ovvio che se riesegui la procedura il valore viene sommato all'ultimo salvato e così via, incrementandolo sempre.
Ma questo è esattamente ciò che hai scritto nel codice! Se incrementi un valore che usi come partenza e poi lo vai a salvare, quando ripeti l'operazione partirai dalla quantità che è stata incrementata precedentemente, perché quello è il valore che hai determinato e salvato, ed è quello il valore da cui riparti, e non può essere diverso, a meno che tu non conservi altrove il valore di base (es. in un campo diverso). Devi separare il valore incrementato da quello di partenza, e aggiornare il primo partendo dal secondo, oppure resettare il campo che hai incrementato al valore base di partenza prima di eseguire la somma. Se sommi e salvi, recuperi, sommi e salvi, recuperi, alla fine avrai un valore che si incrementa sempre all'infinito.
Sì, io ho capito.
Ciao!