Pensionato ha scritto:
Il primo era nella definizione del campo Mysql come decimal(10,2), mentre i decimali presenti possono essere maggiori. Ridefinito come decimal(10,5).
Bene ... in parte.
Quante cifre intere ti servono?
Realmente ti servono 5 cifre decimali? Può essere anche se in genere con 4 cifre dovresti essere abbastanza al sicuro.
Ti consiglio di valutare l'occupazione del campo Decimal in funzione delle cifre totali in modo da utilizzare la capacità massima disponibile (in funzione dei byte occupati dal campo).
Pensionato ha scritto:
Secondo: erroneamente ho convertito tutti i separatori decimali da virgola a punto. Invertita conversione. Il campo origine è stringa, con valori inseriti a mano e non controllati.
Se non mi sono rincitrullito i valori numerici con decimali vanno assegnati con il punto (e non con la virgola).
Indica, se vuoi, campo di partenza, campo di arrivo e modalità di conversione da stringa a numero
Pensionato ha scritto:
Dei record vengono aggiornati. Altri vanno in errore, molto famoso 3197 "il motore di database di microsoft access ha interrotto l'elaborazione. Un altro utente..."
Quelli aggiornati evidentemente sono corretti anche formalmente (ovvero sono numeri, le cifre intere NON superano il max consentito così come le cifre decimali).
L'errore della (possibile) modifica contemporanea dello stesso record (anche quando sei l'unico ad usare il DB) può essere determinato da diverse casistiche, in genere riconducibili ad errori di programmazione e/o a sottovalutazione di comportamenti del DBMS diversi da quello che si pensa.
Della serie :
- potresti aver aperto più recordset sulla stessa tabella/query
- potresti essere dentro una transazione pendente
- potresti aver aperto il recordset in qualche modalità di aggiornamento più critica da gestire
- DAO oppure ADO
- potresti aver utilizzato recordset disconnessi
- potresti avere dei trigger lato DBMS
- potresti ... chissà cos'altro
Più info/codice fornisci più hai speranza che ti si possa aiutare.
Per il codice sei pregato di inserirlo dentro l'apposito tag CODE (il pulsante </> )