.. _orm_genropy/orm_genropy/scrittura/update/recordToUpdate: recordToUpdate ============== In caso di necessità di modifica di **un solo record**, esiste una scorciatoia all'operazione di semplice *update*:: with tbl_prodotto.recordToUpdate(codice='T1') as rec_prodotto: rec_prodotto['prezzo_unitario'] = rec_prodotto['prezzo_unitario'] + 1 mydb.commit() In questo caso viene sfruttato il concetto di *Context Manager* nativo di Python: viene così automaticamente effettuata l' :ref:`Operazione di lettura` , che restituisce un record già pronto per la modifica, e non si rende necessaria l'esplicitazione dell'*update*, ma solo il *commit* finale. Come in una qualsiasi :ref:`Operazione di lettura` la *recordToUpdate* può ricevere, alternativamente alla condizione *where*, anche una ``pkey``. .. hint:: Arricchendo la ``recordToUpdate`` con l'attributo ``ignoreMissing=True``, evitiamo di mandare il sistema in errore in caso mancasse il record da aggiornare, mentre con ``raw=True`` verrà effettuato l'update ignorando eventuali :ref:`Trigger` .. raw:: html
**Parametri:** +------------------------+------+--------------------------------------------------+ | Nome parametro | Tipo | Descrizione | +========================+======+==================================================+ |for_update |B |Eseguendo una qualsiasi operazione di lettura con | | | |questo parametro verrà restituito come risultato | | | |un record pronto per la modifica | +------------------------+------+--------------------------------------------------+ |pkey |T |La pkey del record, fornita posizionalmente come | | | |primo parametro | +------------------------+------+--------------------------------------------------+ |where |T |La where per l'individuazione del record | +------------------------+------+--------------------------------------------------+ |raw |B |Di norma False, se impostato a True esegue | | | |l'update senza innescare i trigger | +------------------------+------+--------------------------------------------------+ |insertMissing |B |Se impostato a True, nel caso in cui non viene | | | |individuato un record ne viene creato uno nuovo | +------------------------+------+--------------------------------------------------+ |ignoreMissing |B |Se impostato a True, in caso di mancata | | | |individuazione del record non viene sollevata | | | |un'eccezione di errore | +------------------------+------+--------------------------------------------------+ |assignId |B |Se impostato a True, in caso di inserimento di | | | |nuovo record viene assegnato l'id | +------------------------+------+--------------------------------------------------+ |virtual_columns |T |Le colonne virtuali da presentare al caricamento | | | |del record (es:virtual_columns='$tipo_doc_descr') | +------------------------+------+--------------------------------------------------+ .. sectionauthor:: Davide Paci