2016-12-01 61 views

回答

0

当Access数据库包含保存它们被访问ODBC暴露的存储过程,并可以使用ODBC {call ...}语法调用参数查询。例如,

PARAMETERS prmLastName Text (255); 
SELECT Clients.ID, Clients.LastName, Clients.FirstName, Clients.Email 
FROM Clients 
WHERE (((Clients.LastName)=[prmLastName])); 

名为[ClientEmails]保存的查询......下面的Python代码将运行查询和特定姓返回结果:

cmd = "{call ClientEmails(?)}" 
params = ("Thompson",) 
crsr.execute(cmd, params) # pyodbc "cursor" object 
for row in crsr.fetchall(): 
    print(row) 
+0

谢谢戈德! – Knoel

0

这里是一个通用的例子。首先,连接到数据库。然后,发出命令。该命令只是一个字符串。你可以通过简单的字符串连接在你的代码中引入其他地方的变量。

import pyodbc 

connStr = """ 
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; 
DBQ=C:\full\path\to\your\PYODBC.accdb; 
""" 
cnxn = pyodbc.connect(connStr) 
cursor = cnxn.cursor() 

desired_column = "Forename" 
table_name = "Student" 
command = "SELECT " + desired_column + " FROM " + table_name 

cursor.execute(command) 
row = cursor.fetchone() 
if row: 
    print(row)