2016-01-05 77 views
1

有許多關於如何使用pyodbc在MS Access 2007中運行查詢的提示,但所有這些查詢都是在Python腳本中編碼的。我想用pyodbc來調用已經保存在MS Access中的查詢。我怎樣才能做到這一點?如何使用pyodbc執行MS Access中保存的查詢

回答

2

如果在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() 
+1

代碼中缺少一行是'import pyodbc'。提高投票率 - 因爲它對我有效;-) – Plirkee

+0

@Plirkee - 我已經添加了'import'語句。謝謝。 –