21

我正在尝试使用 pyodbc 在带有 python 的 MS Access DB 中创建表,但是当我运行我的脚本时,没有创建表,也没有给出错误。我的代码:

#!/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)

有什么问题?

4

2 回答 2

23

您需要提交事务:

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()
于 2011-10-12T18:33:04.550 回答
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
于 2019-08-29T15:24:46.013 回答