【发布时间】:2014-09-10 13:28:17
【问题描述】:
我对简单的 UPDATE 语句有疑问。我写了一个 Python 工具,它创建了很多 UPDATE 语句,创建它们后,我想在我的 Access 数据库上执行它们,但它不起作用这是一个语句,例如:
UPDATE FCL_B_COVERSHEET_A SET BRANCH = 0 WHERE OBJ_ID = '1220140910132011062005';
语句语法不是问题。我测试了它,它可以工作。
接下来的代码 sn-p 显示了连接对象的初始化。
strInputPathMDB = "C:\\Test.mdb"
DRV = '{Microsoft Access Driver (*.mdb)}';
con = pyodbc.connect('Driver={0};Dbq={1};Uid={2};Pwd={3};'.format(DRV,strInputPathMDB,"administrator",""))
之后我写了一个执行一条 SQL 语句的方法
def executeSQLStatement(conConnection, strSQL):
arcpy.AddMessage(strSQL)
cursor = conConnection.cursor()
cursor.execute(strSQL)
conConnection.commit()
如果我执行此代码,一切似乎都能正常工作 - 没有错误消息或类似的东西 - 而且数据没有更新,我不知道我做错了什么......
for strSQL in sqlStateArray:
executeSQLStatement(con, strSQL)
con.close()
我希望你明白我的问题是什么。感谢您的帮助。
克里斯
【问题讨论】:
-
你的数据库文件真的在C:\(C:盘根目录)吗?
-
是的。但我也试过 "D:\\Test.mdb" 但它不起作用。
-
尝试将 .mdb 文件放在您知道每个人都具有不受限制的读/写权限的地方,例如“公共文档”,看看是否有帮助。您的代码基本上是正确的,因此我怀疑存储 .mdb 的文件夹存在权限问题。
-
非常感谢。我将 mdb 文件放在公用文件夹中,它可以工作。
标签: python sql syntax-error pyodbc