简介
Microsoft Jet是微软针对文件型数据库所发展的数据库引擎(Database Engine),它的适用数据源种类相当多,像是Microsoft Access、Microsoft Excel、dBase等等文件型数据源都可以利用Microsoft Jet数据库引擎来使用SQL指令访问。目前的Jet引擎最新版本为4.0,并且未来在x64平台上将不再支持。Jet DLLsJet versionJet engineDLL file nameMDB version1.11.10.0001MSAJT110.DLL1.0 / 1.12.0 (comlyr)2.00.0000MSAJT200.DLL1.0 / 1.1 / 2.02.5(accsvc)2.50.1606MSAJT200.DLL1.0 / 1.1 / 2.0 / 3.02.5(VB4 16)2.50.1606MSAJT200.DLL1.0 / 1.1 / 2.0 / 3.03.03.0.0.2118MSJT3032.DLL1.0 / 1.1 / 2.0 / 3.03.5MSJET35.DLL1.0 / 1.1 / 2.0 / 3.04.0 (SP8)4.0.8015.0MSOLEDBJET40.DLL1.0 / 1.1 / 2.0 / 3.0 / 4.0ACE 1212.0.xxxx.xxxxACECORE.DLL1.0 / 1.1 / 2.0 / 3.X / 4.0 / ACEACE 1414.0.xxxx.xxxxACECORE.DLL3.X / 4.0 / ACEACE 1515.0.xxxx.xxxxACECORE.DLL4.0 / ACEACE 1616.0.xxxx.xxxxACEOLEDB.DLL4.0 / ACESources:http://support.microsoft.com/kb/178880/en (页面存档备份,存于互联网档案馆)http://support.microsoft.com/kb/282010/en (页面存档备份,存于互联网档案馆)http://support.microsoft.com/kb/239114/en (页面存档备份,存于互联网档案馆)应用程序/版本Jet versionMicrosoft Access 1.01.0Microsoft Access 1.11.1Microsoft Access 2.02.0Microsoft Access 2.0 Service Pack2.5Microsoft Access 95 / Excel 953.0Microsoft Access 97 / Excel 97 / PowerPoint 97 / Word 973.5Microsoft Access 20004.0 SP1Microsoft Access 2002Microsoft Access 2003Microsoft Access 2007ACE 12Microsoft Access 2010ACE 14Microsoft Access 2013ACE 15Microsoft Access 2016ACE 16Visual Basic 3.01.1Visual Basic Compatibility Layer2.0Visual Basic 4.0 16-bit2.5Visual Basic 4.0 32-bit3.0Visual Basic 5.03.5Visual C++ 4.X3.0Visual C++ 5.03.5Microsoft Project 4.1 / Project 953.0Internet Information Server 3.03.5SQL Server 7.04.0Redistributable installersJet 3.51 web download3.5+MDAC 2.14.0 SP1MDAC 2.54.0 SP3 to SP6+Jet 4.04.0 SP3 to SP82007 Office System Driver (页面存档备份,存于互联网档案馆)ACE 12Microsoft Access Database Engine 2010 (页面存档备份,存于互联网档案馆)ACE 14Microsoft Access Database Engine 2016 (页面存档备份,存于互联网档案馆)ACE 16操作系统Windows Me4.0 SP3Windows 20004.0 SP3Windows XP4.0 SP5+Windows Server 20034.0 SP6+Windows Vista4.0 SP8+Windows Server 20084.0 SP8+Windows 74.0 SP8+Sources:Microsoft Jet Database Engine Programmer’s Guide – Introduction (页面存档备份,存于互联网档案馆)INFO: Identifying the Jet Database Engine Components (页面存档备份,存于互联网档案馆)Microsoft Data Access Components (MDAC) release history (页面存档备份,存于互联网档案馆)Release manifest for MDAC 2.1 (2.1.1.3711.11) (GA) (页面存档备份,存于互联网档案馆)INFO: MDAC Version 2.6 and Later Do Not Contain Jet or Desktop ODBC Drivers (页面存档备份,存于互联网档案馆)Release manifest for MDAC 2.5 Service Pack 3 (2.53.6200.2) (页面存档备份,存于互联网档案馆)Wrong AutonumberHow to obtain the latest service pack for the Microsoft Jet 4.0 Database Engine (页面存档备份,存于互联网档案馆)
版本历程
Jet 1.0
Microsoft Jet第一个版本是在1992年研发出来,当时的研发代号是“Cirrus”,为Microsoft Access 1.0所使用的数据库引擎,当时的资料访问组件为DAO(Data Access Object),编程语言为Visual Basic 3.0,DAO本身是一个COM组件,可以由支持COM规格的编程语言所访问,但它当时的功能只适用于Microsoft Access。Jet 1.1于1993年5月发表,首次支持Access以外的数据库 (FoxPro)。使用Dynaset(英语:Dynaset)保存查询结果,它自动链接到数据库,因此用户可以查看Dynaset并即时看到别人对数据库的修改;用户修改Dynaset的记录能自动存回数据库,无需另写修改数据库内容的SQL语句。如果Dynaset是多表Join操作生成的,则是不可修改。
Jet 2.x
Jet 2.0在1994年4月与Access 2.0一起发表,它支持了数据完整性,引擎层次资料验证,ANSI SQL,联合查询,子查询等等功能,DAO也新增了更多完整的对象能力,像是集合、对象、属性和方法等。同年的10月份,Jet 2.5与Access 2.0 Service Pack和ODBC Desktop Database Driver Kit一起发表,它也是第一个32位版本的Jet引擎,并开始支持Excel的读写能力以及VBA的功能。
Jet 3.x
Jet 3.0在1995年第三季发表,Jet 3.5则是在1996年第三季发表,与Jet 2.x不同的是,它只有32位的版本,提供给Windows 95以及Windows NT等操作系统使用,其主要新功能为支持数据库复制(Replication),多线程支持以及动态缓冲器 (dynamic buffer)的能力,并使用全新的索引机制,可加快数据库的速度,并且扩展DAO的对象模型。采用了Microsoft Rushmore查询优化技术。Jet 3.0引入了隐式事务(Implicit transactions),即在上一条事务提交给数据库后,自动开始了下一条事务。但随后在Windows95平台上发现这对性能有负面影响,Jet 3.5又删除了这一特性。
Jet 4.0
Jet 4.0是Microsoft发表的最后一个Jet引擎版本,它支持了下列的能力:
Unicode字符存储支持,使用与Windows NT相同,并且也在Windows 95上版本实现的排序方法。
变更资料类型,让它更贴近SQL Server,并支持新的decimal资料类型。
Memo字段可以设置索引。
可压缩资料类型。
强化SQL让Jet更符合ANSI SQL-92规范。
更好的安全性,查看表支持,程序支持。支持SQL命令: CREATE, ADD, ALTER, DROP USER, DROP GROUP, GRANT/REVOKE.
事务的提交与回滚。
强化的表格创建与修改。
支持引用完整性。
连线控制。
用户清单,允许管理员能决定谁可连到数据库。
记录层级锁(record locking model );此前版本只支持页锁,当时数据页为2KB。都支持“悲观锁”(pessimistic locking)与乐观锁(optimistic locking),前者在请求锁定时可立刻获得锁,后者在被编辑的记录保存时才获得锁.
与Microsoft SQL Server的双边复制能力。
连接字符串与支持的数据库
连接字符串
参数HDR: HDR=Yes,指示第一行是标题,不做为数据使用;HDR=NO,指示第一行不是标题,做为数据来使用。
参数IMEX ( IMport EXport mode ):
0 表示Export mode,“汇出模式”,只能用来做“写入”用途
1 表示Import mode,“导入模式”,只能用来做“读取”用途。
2 表示Linked mode (full update capabilities),“链接模式”,可同时支持“读取”与“写入”用途
如果执行Insert Into语句时却出现异常:“操作必须使用一个可更新的查询”,这时可能需要把IMEX的值从2改为1尝试。
Microsoft Access
Access是Jet最主要的支持对象之一,因此对Access的支持是最充足的,依版本的不同,由MSRD2x40.DLL(Jet 2.x)、MSRD3x40.DLL (Jet 3.x)与MSJET40.DLL支持:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;
Microsoft Excel
Excel则是在Jet 2.x开始支持的资料存储体,虽然可以使用SELECT,INSERT,UPDATE三种查询,但无法使用DELETE删除资料,而且其SQL指令的使用限制也很多。
Excel的驱动程序由MSEXCL40.DLL提供,目前可支持:
Excel 3.0(Office 3.0)
Excel 4.0(Office 4.0)
Excel 5.0(Office 4.3)
Excel 8.0(Office 97-2000)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
对于Excel 97以上到2003版本在连接字符串中都用Excel 8.0;对于Excel 2007或2010的在连接字符串中都用Extended Properties=Excel 12.0
Exchange
Microsoft Jet支持Exchange 4.0数据库,但后续版本即不再支持,目前它可访问Outlook 9.0 (Outlook 2000)的资料档,由MSEXCH40.DLL支持。
Provider=Microsoft.JET.OLEDB.4.0;Exchange 4.0;MAPILEVEL=Outlook Address Book\;PROFILE=Outlook;TABLETYPE=1;DATABASE=c:\temp
HTML Table
在网页中的HTML表格可以利用Jet来访问,分为HTML import和HTML export两个部分,分别处理HTML的SELECT(输入)与INSERT(输出)。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=http://www.acme.com/tb.html;Extended Properties="HTML Import;HDR=YES;IMEX=1";
Paradox
Jet可以连接与访问Paradox数据库,由MSPBDE40.DLL支持,目前可用的版本有:
Paradox 3.x
Paradox 4.x
Paradox 5.x
Paradox 7.x
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Microsoft Office\Office;Extended Properties=Paradox 5.x
dBase
dBase文件的支持由MSXBDE40.DLL支持,目前可用的版本有:
dBase III
dBase IV
dBase 5.0
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\myDB;Extended Properties=dBASE IV;
文本文件
文本文件 (text file),包括csv文件,是Jet较为特殊的数据源类型之一,它由MSTEXT40.DLL支持,它同时也是HTML Import与HTML Export的基础。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\data.txt;Extended Properties="text;HDR=Yes;FMT=Delimited(,)";
Lotus 1-2-3
Lotus 1-2-3的表格可由Jet访问,可支持Lotus的WJ2, WJ3, WK1, WK3与WK4等文件格式,由MSLTUS40.DLL提供支持。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\FILE0014.WK4;Extended Properties=Lotus WK4;Persist Security Info=False
对于Microsoft Office 2007的支持
由于Microsoft Office 2007对其旗下Access与Excel的主要文件格式进行修改,并且重命名为.accdb(Access 2007数据库文件)与.xlsx(Excel 2007文件),因此不再被Microsoft Jet引擎支持,不过微软也随着OFFICE 2007产品发布了Microsoft Office 2007 Desktop Drivers: Data Connectivity Components (页面存档备份,存于互联网档案馆)新的Office相关版本(Office-specific version)的Jet数据库引擎:Office Access Connectivity Engine (ACE),其连接字符串中的资料提供者改为Microsoft.ACE.OLEDB.12.0。ACE引擎向后兼容于老版本的Jet引擎,但是对Jet 4.0的一些重要特性不再支持,包括:用户级安全(User-level security)与复制特性(replication feature)。Access 2007及其后版本使用Jet 4.0引擎来操作老版本的Access文件。 Microsoft Access 2010引入了64比特版本的ACE引擎。
Access 2007的连线字符串为:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;
Excel 2007的连线字符串为:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
对 x64 的支持能力随 Office 安装版本而定:若 Office 安装了 x86 版本,则没有 64 位 ODBC 驱动程序可用(Jet 和 Office 驱动都是 32 位);但若安装了 x64 版本的 Office,则 32 位的 ODBC 程序只能使用 Windows 附带的 Jet 驱动程序、Office 驱动程序是 64 位。