Access数据库上的UPDATE语句在pyodbc下无提示失败

时间:2014-09-10 13:28:17

标签: python sql syntax-error pyodbc

我遇到一个简单的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()

我希望你明白我的问题是什么。谢谢你的帮助。

克里斯

1 个答案:

答案 0 :(得分:0)

这里的问题是.mdb文件位于C:驱动器的根文件夹中。根文件夹通常将普通用户限制为只读访问权限,因此数据库文件以只读方式打开。将.mdb文件移动到公用文件夹可以解决问题。