In DBF suchen und Datensatz aktualisieren

Code

#!/usr/bin/python
db = dbf.Dbf("MEST2.DBF")
#LINE TO UPDATE:
rec = db[0]
#PROEST IS A field of my dbf. I'm assigning 1 to this field line 0
rec["PROEST"] = 1
rec.store()
del rec
db.close()

BILD DER DBF-TABELLE:http: //i.stack.imgur.com/1UHE1.jp

Mein Problem ist, dass ich die Datensätze nicht zeilenweise ändern kann, da die Position der Produkte (PROCOD) variieren kann.

Irgendwelche Vorschläge, um den PROCOD zu erhalten und den Wert von PROEST zu ändern?

AKTUALISIERT

#!/usr/bin/python

import dbf
db = dbf.Table('MEST2.DBF')
with db:
    procod_idx = db.create_index(lambda rec: (rec.codigo, rec.procod))
    match = procod_idx.search(match='000001')

    # should only be one product with that code
    record = match[0]   
    with record:
        record.proest = 23

Aber die Frage ist nun, wie ich den Wert basierend auf dem CODIGO-Feld (Stock Code) bearbeite. Ich habe mehrere Aktien ID: (1, 2, 5, 11). Das Code-Update ist nur das erste Ergebnis. Ich muss einen bestimmten Datensatz im CODIGO-FELD aktualisieren.

In SQL wäre: "UPDATE PROEST SET 32 where CODIGO = 11" ... oder CODIGO = 2

Gelöst von Ethan Furman

#!/usr/bin/python

import dbf
db = dbf.Table('MEST2.DBF')
with db:
    procod_idx = db.create_index(lambda rec: (rec.codigo, rec.procod))
    match = procod_idx.search(match=(11, '000001'))
    record = match[0]
    with record:
        record.proest = 25
        record.dt_atualiz = '14/07/15 16:52'

Antworten auf die Frage(2)

Ihre Antwort auf die Frage