反映加密的 Access 数据库时出现“无效密码”错误

Posted

技术标签:

【中文标题】反映加密的 Access 数据库时出现“无效密码”错误【英文标题】:"Not a valid password" error when reflecting an encrypted Access database 【发布时间】:2021-09-28 16:08:41 【问题描述】:

我是 sqlalchemy 的初学者,我想将我的表在数据库中反映到对象,但总是返回无效的密码,即使密码是正确的。我不明白为什么会这样。当我尝试检查他们返回我的表名时,所以我的密码、连接字符串或在 create_engine 上是正确的。 当我的数据库没有密码没问题时,我可以将它反映给对象,这太奇怪了。 但是为什么当我用密码反映数据库时它是错误的,总是返回“不是有效的密码”??,

My MS. Access Tbl 1

My MS. Access Tbl 2

Error in Reflect but My Table name is returned

This is my Code

因为好奇我也做了一个测试选择数据,结果成功检索到数据

it's returned my data and success created connection

when i add some code for testing

我认为都是正确的,但为什么不能反映?,请帮助。

My Reference connection_string

My Reference SqlAlchemy Automap Reflect

【问题讨论】:

【参考方案1】:

我刚刚发布了 sqlalchemy-access 1.1.1 版来解决这个问题。请注意,如Getting Connected 中所述,如果您想在加密数据库中使用直通 ODBC 连接字符串,您需要在两个地方提供密码:

driver = "Microsoft Access Driver (*.mdb, *.accdb)"
db_path = r"C:\Users\Public\test\sqlalchemy-access\gord_test.accdb"
pwd = "tiger"
connection_string = (
    f"DRIVER=driver;"
    f"DBQ=db_path;"
    f"PWD=pwd;"
    f"ExtendedAnsiSQL=1;"
)
connection_uri = (
    f"access+pyodbc://admin:pwd@/"
    f"?odbc_connect=urllib.parse.quote_plus(connection_string)"
)
engine = sa.create_engine(connection_uri)

【讨论】:

嗨,感谢您的评论,感谢您解决问题,我已经更新了它,现在可以使用了。谢谢。

以上是关于反映加密的 Access 数据库时出现“无效密码”错误的主要内容,如果未能解决你的问题,请参考以下文章

将 MySQL 数据导入 Access 2010 时出现问题

将记录添加到 Access 数据库时出现“INSERT INTO 语句中的语法错误”

从 Java 更新 Access 数据库时出现“不支持的整理排序顺序”错误

在依赖表上插入 Access 数据库时出现问题 [重复]

从 Java 连接到 SQL Server 2016 时出现 EXCEPTION_ACCESS_VIOLATION

在 MS Access 中导入电子表格数据时出现错误消息