Я пытаюсь выяснить, можно ли заменить значения записей в базе данных Microsoft Access (.accdb или .mdb) с помощью pyodbc. Я изучил документацию и отметил, где говорится, что "значения строк могут быть заменены", но я не смог заставить его работать.
В частности, я пытаюсь заменить значение строки из переменной python. Я пробовал:
установка автофиксации соединения на "True"
убедился, что это не проблема типа данных
Вот фрагмент кода, в котором я выполняю SQL-запрос, используя fetchone() для захвата только одной записи (я знаю, что с этим скриптом запрос возвращает только одну запись), затем я получаю существующее значение для поля (целое число позиции поля хранится в переменной z), а затем я получаю новое значение, которое я хочу записать в поле, обращаясь к нему из существующего словаря Python, созданного в скрипте.
pSQL = "SELECT * FROM %s WHERE %s = '%s'" % (reviewTBL, newID, basinID)
cursor.execute(pSQL)
record = cursor.fetchone()
if record:
oldVal = record[z]
val = codeCrosswalk[oldVal]
record[z] = val
Я перепробовал все, что мог, но не смог заставить его работать. Я просто неправильно понимаю справочную документацию?
Сценарий выполняется успешно, но новое присвоенное значение никогда не фиксируется. Я даже пытался поместить «print str(record[z])this после строки record[z] = val, чтобы увидеть, имеет ли поле в таблице новое значение, и новое значение будет напечатано так, как оно сработало… но тогда, если Я проверяю таблицу после завершения сценария, старые значения все еще находятся в поле таблицы.
Очень ценю любое понимание этого ... Я надеялся, что это будет работать так же, как с помощью VBA в базах данных MS Access вы можете использовать набор записей ADO для циклического просмотра записей в таблице и присвоения значений полю из переменной.
спасибо, Том