Cant Создать таблицы в доступе с помощью pyodbc
Я пытаюсь создать таблицы в базе данных MS Access с помощью python, используя pyodbc, но когда я запускаю свой script, таблицы не создаются, и никаких ошибок не возникает. Мой код:
#!/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)
Что может быть неправильным?
Ответы
Ответ 1
Вам необходимо зафиксировать транзакцию:
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()
Ответ 2
Дополнительные решения для фиксации вручную:
Установите autocommit = True
при создании экземпляра соединения.
Например:
con = pyodbc.connect(your_connection_string, autocommit = True)
ИЛИ
Используйте оператор with
, который, согласно закрытию базы данных Python Close, будет фиксировать что-либо до того, как соединение будет удалено в конце блока with
.
Например:
with pyodbc.connect(your_connection_string) as con:
CREATE_TABLE_CODE_WITHOUT_COMMIT
UNRELATED_CODE