我想知道是否可以使用pyodbc替换Microsoft Access(或.accdb或.mdb)数据库中的记录值。我已经仔细查看了文档,并注意到了它在哪里写着“Row Values Can Be Replaced”,但我无法使它起作用。在
更具体地说,我试图替换python变量中的行值。我试过:
将连接自动提交设置为“True”
确保不是数据类型问题
下面是一段代码,我在这里执行一个SQL查询,使用fetchone()只获取一条记录(我知道在这个脚本中,查询只返回一条记录),然后获取字段的现有值(字段位置整数存储在z变量中),然后,通过从脚本中创建的现有python字典访问它,得到我想要写入字段的新值。在
pSQL = "SELECT * FROM %s WHERE %s = '%s'" % (reviewTBL, newID, basinID)
cursor.execute(pSQL)
record = cursor.fetchone()
if record:
oldVal = record[z]
val = codeCrosswalk[oldVal]
record[z] = val
我想尽一切办法都试过了。我只是误解了帮助文档吗?在
脚本成功运行,但新分配的值似乎从未提交。我甚至试着把“print str(record[z])放在record[z]=val行之后,看看表中的字段是否有新值,新值是否会正常打印……但是如果在脚本完成后签入表,旧值仍然在表字段中。在
非常感谢您对此的深入了解…我希望这能像在msaccess数据库中使用VBA一样工作,您可以使用ADO记录集循环访问表中的记录,并从变量为字段赋值。在
谢谢, 汤姆
pyodbc文档中的“行值可以被替换”是指您可以修改返回的行对象上的值,例如在开始使用它们之前执行一些清理或转换。这并不意味着这些更改将自动保存在数据库中。为此,您必须使用sql更新语句。在
相关问题 更多 >
编程相关推荐