【发布时间】:2023-03-10 16:41:02
【问题描述】:
我有一个程序需要将它打开的任何 Access (Jet) 数据库升级到 JET Version4.x,如果它还不是那个版本的话。 (这可以使用 SQL-92 语法特性)
升级(相对)容易。调用 JRO.JetEngine 对象的 CompactDatabase 方法 (as described here) 应该可以解决问题,但在此之前,我需要确定是否需要升级。如何确定现有数据库的 Jet OLEDB:Engine Type?这可以通过打开的 OleDBConnection 确定吗?
注意:
- 我说的是数据库版本,而不是 Jet 库版本。
- 非常感谢 C# 或 .Net 解决方案。
- 这是一个使用 Jet 引擎的应用程序,而不是 Access 应用程序。
【问题讨论】:
-
不能从Connection对象中读取吗?
-
您真的在更新 Access 97 或以前的数据库吗?从 Access 2000 开始的任何东西都将使用 Jet 4.0。
-
Jet 4 支持向后兼容 A97。也就是说,您可以使用 Jet 4 来更新 Jet 3.x 数据库——无需为此使用 Jet 3.x。
-
@scope-creep 连接对象似乎只返回了我用来打开连接的信息,而不是连接到的数据库的信息。
-
@Thomas - 目的是转换为 Access 2003(将版本标识为“旧”)。我认为它们是 2000 年创建的任何版本,但目前找不到 Access -> Jet 引擎类型的文档。