Не могу создавать таблицы в доступе с помощью pyodbc

Я пытаюсь создать таблицы в базе данных MS Access с помощью python, используя pyodbc, но когда я запускаю свой скрипт, таблицы не создаются и не выдаются ошибки. Мой код:

#!/usr/bin/env python
import pyodbc

con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=Z:\Data\Instruments\testDB.accdb; Provider=MSDASQL;')
cur = con.cursor()
string = "CREATE TABLE TestTable(symbol varchar(15), leverage double, shares integer, price double)"
cur.execute(string)

Что могло быть не так?


person wDroter    schedule 12.10.2011    source источник


Ответы (2)


Вам необходимо совершить транзакцию:

import pyodbc

con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=Z:\Data\Instruments\testDB.accdb; Provider=MSDASQL;')
cur = con.cursor()
string = "CREATE TABLE TestTable(symbol varchar(15), leverage double, shares integer, price double)"
cur.execute(string)
con.commit()
person garnertb    schedule 12.10.2011
comment
Спасибо! Полдня на отладку, почему моя БД полностью зависла. Таблица создания никогда не фиксировалась и заставляла ждать всю БД. - person Jari Turkia; 22.06.2021

Дополнительные решения, не требующие фиксации вручную:

Установите autocommit = True при создании экземпляра соединения.

Eg:

con = pyodbc.connect(your_connection_string, autocommit = True)

ИЛИ

Используйте оператор with, который, согласно Закрыть соединение с базой данных Python, зафиксирует что-либо до того, как соединение будет установлено. удален в конце блока with.

Eg:

with pyodbc.connect(your_connection_string) as con:

    CREATE_TABLE_CODE_WITHOUT_COMMIT

UNRELATED_CODE
person johnDanger    schedule 29.08.2019