我尝试在另一个mdb上使用左连接进行更新查询。
进入第一个MDB的游标,执行此查询:
update table as ori
left join (select *
from param in "E:/Jeter/param_141114.mdb"
where zone = '1H005') param
on ori.dep_sur = param.dsu_co
set ori.texture = param.textu where mid(ori.type,4,1) in ('0','7','8')
当我从Microsoft Access启动此查询时,没有问题,应用查询。
当我使用pyodbc从python 2.7启动此查询时,此处我的结果是从french:
翻译而来ProgrammingError('42000',“[42000] [Microsoft] [ODBC Microsoft Access 驱动]数据库引擎找不到[E:/Jeter/param_141114.mdb] '确保名字。参数或别名是有效的,他没有 理解字符或不正确的标点符号并且它不是 长。 (-1002)(SQLExecDirectW)“)
一些想法?
答案 0 :(得分:3)
显然,来自外部应用程序的ODBC查询无法使用SELECT ... FROM TableName IN "FileName" ...
语法。但是,我只是尝试了以下变体,它对我有用(Python 2.7和pyodbc):
sql = """
update tableau as ori
left join (select *
from [C:/__tmp/test.mdb].param
where zone = '1H005') param
on ori.dep_sur = param.dsu_co
set ori.texture = param.textu
"""
crsr = db.execute(sql)
crsr.commit()