21

pyodbcを使用してPythonでMSAccessDBにテーブルを作成しようとしていますが、スクリプトを実行するとテーブルが作成されず、エラーも発生しません。私のコード:

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

また

Pythonデータベース接続Closewithに従って、ブロックの最後で接続が削除される前に何かをコミットするステートメントを使用します。with

例えば:

with pyodbc.connect(your_connection_string) as con:

    CREATE_TABLE_CODE_WITHOUT_COMMIT

UNRELATED_CODE
于 2019-08-29T15:24:46.013 に答える