我遇到一个简单的UPDATE语句问题。我写了一个Python工具,它创建了很多UPDATE语句,在创建它们之后我想在我的Access数据库上执行它们但它不起作用这是一个语句,例如:
UPDATE FCL_B_COVERSHEET_A SET BRANCH = 0 WHERE OBJ_ID = '1220140910132011062005';
语句语法不是问题。我测试了它并且它有效。
下一个代码片段显示了连接对象的初始化。
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()
我希望你明白我的问题是什么。谢谢你的帮助。
克里斯
答案 0 :(得分:0)
这里的问题是.mdb文件位于C:驱动器的根文件夹中。根文件夹通常将普通用户限制为只读访问权限,因此数据库文件以只读方式打开。将.mdb文件移动到公用文件夹可以解决问题。