我有一个程序需要升级它打开的任何Access(Jet)数据库到JET Version4.x(如果尚未升级到该版本)。 (这样可以使用SQL-92语法功能)
升级相对容易。调用JRO.JetEngine对象的CompactDatabase方法(as described here)应该可以解决问题,但是在执行此操作之前,我需要确定是否需要升级。如何确定现有数据库的Jet OLEDB:Engine类型?是否可以从打开的OleDBConnection确定?
笔记:
最佳答案
您必须设置对ADO的引用,然后才能获得该属性。
来自Access的内部
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.Connection
从Access外部
Dim cnn As New ADODB.Connection
cnn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Contact.mdb
最后是
Debug.Print cnn.Properties("Jet OLEDB:Engine Type").Value
此
.Value
将返回1到5。如果为5,则它已经在Jet4x中,否则为早期版本。这也是您正在研究的另一种升级技术示例:Convert MDB database to another format (JET, access version)
关于c# - 如何以编程方式确定Jet数据库引擎类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2897780/