我是初学者,我想在数据库中反映我的表到对象,但总是返回无效的密码,即使密码是正确的。我不明白为什么会这样。当我尝试检查他们返回我的表名,所以我的密码,连接字符串或对create_engine是正确的。当我的数据库没有密码是好的,我可以把它反映到对象,这太奇怪了。但是为什么当我用密码反映数据库时,它是错误的,总是返回&;Not a valid password&;??
My MS. Access table 1
My MS. Access table 2
反射错误,但返回My Table name
这是我的代码
因为我很好奇,我也做了一个测试选择数据,结果成功地检索了数据
它返回了我的数据并且成功创建了连接
当我添加一些测试代码
我认为是正确的,但为什么不能反映? ?, Please Help.
My Reference
My Reference SqlAlchemy Automap Reflect
我刚刚发布了sqlalchemy-access 1.1.1版本来解决这个问题。请注意,如连接中所述,如果希望对加密数据库使用直通ODBC连接字符串,则需要在两个位置提供密码:
driver = "{Microsoft Access Driver (*.mdb, *.accdb)}"
db_path = r"C:UsersPublictestsqlalchemy-accessgord_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)