最近我一直在使用(测试)这两种解决方案来从Access (MDB文件)获得一些数据。我认为jackess不需要密码来访问数据库的数据,而UCanAccess只有在我插入密码(如果数据库有)时才能工作。
那么,到底发生了什么?如果jackess是UCanAccess的依赖项,为什么需要密码?或者为什么jackess也不需要密码?
谢谢!
当将数据库密码分配给较旧格式的.mdb数据库时,该文件实际上并未加密。(旧版本的MS Access应用程序有一个单独的加密文件选项,但即使是这种保护也相当薄弱。)
如果文件没有加密,那么jackess不需要密码来打开它。实际上,jackess提供了一种从未加密(但"密码保护").mdb文件中检索数据库密码的方法。
正如在对你的问题的评论中所建议的,UCanAccess开发团队决定与其他高级数据访问方法保持一致,并要求用户在打开数据库时提供正确的密码。如果你真的想避免将数据库密码编码到UCanAccess应用程序中,那么你总是可以
- 先打开数据库文件,
- 使用jackess调用来检索数据库密码,
- 关闭jackess与数据库的连接,然后
- 在打开UCanAccess连接到数据库时提供数据库密码。
请注意,当将数据库密码应用于新格式的.accdb数据库时,文件实际上是加密的,因此jackess和UCanAccess都需要正确的密码(以及额外的组件"jackess Encrypt",以及依赖项)才能打开它。