1
有許多關於如何使用pyodbc在MS Access 2007中運行查詢的提示,但所有這些查詢都是在Python腳本中編碼的。我想用pyodbc來調用已經保存在MS Access中的查詢。我怎樣才能做到這一點?如何使用pyodbc執行MS Access中保存的查詢
有許多關於如何使用pyodbc在MS Access 2007中運行查詢的提示,但所有這些查詢都是在Python腳本中編碼的。我想用pyodbc來調用已經保存在MS Access中的查詢。我怎樣才能做到這一點?如何使用pyodbc執行MS Access中保存的查詢
如果在Access中保存的查詢是不帶參數的簡單的SELECT查詢,然後訪問ODBC驅動程序公開它作爲一個視圖,所有你需要做的就是使用查詢名稱,就像它是一個表:
import pyodbc
connStr = (
r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
r"DBQ=C:\Users\Public\Database1.accdb;"
)
cnxn = pyodbc.connect(connStr)
sql = """\
SELECT * FROM mySavedSelectQueryInAccess
"""
crsr = cnxn.execute(sql)
for row in crsr:
print(row)
crsr.close()
cnxn.close()
如果查詢是某種其他類型的查詢(例如,帶參數的SELECT,INSERT,UPDATE ...),則Access ODBC驅動程序將它們公開爲存儲過程,因此您需要使用ODBC {CALL ...}
語法在
import pyodbc
connStr = (
r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};"
r"DBQ=C:\Users\Public\Database1.accdb;"
)
cnxn = pyodbc.connect(connStr)
sql = """\
{CALL mySavedUpdateQueryInAccess}
"""
crsr = cnxn.execute(sql)
cnxn.commit()
crsr.close()
cnxn.close()
代碼中缺少一行是'import pyodbc'。提高投票率 - 因爲它對我有效;-) – Plirkee
@Plirkee - 我已經添加了'import'語句。謝謝。 –