Каждая запись должна быть сохранена индивидуально, и это можно сделать двумя способами:
dbf.write(record, {'cust_name': 'new data', 'cust_rate': 0.09)
и
with record:
record.cust_name = 'new data'
record.cust_rate = 0.09
# context manager ends, record is automatically saved
# more code here
В отличие от современных баз данных, каждая запись в dbf
являетсяживая копия. Раньше я сразу записывал изменения на диск, но тогда запись могла быть повреждена, если позднее поле изменилось. Таким образом, теперь изменения ставятся в очередь и записываются только на диск с помощью команды .write()
, или когда менеджер контекста записи успешно завершается.