Microsoft Access数据库引擎Microsoft Access資料庫引擎(英語:Microsoft Access Database Engine)是微軟針對檔案型資料庫所發展的資料庫引擎(Database Engine),它的前身Microsoft Jet資料庫引擎的適用資料來源種類相當多,像是Microsoft Access、Microsoft Excel、dBase等檔案型資料來源都可以使用SQL指令存取。 目前的Access資料庫引擎最新版本為ACE 16。
版本歷程Jet 1.0Microsoft 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)[3]。使用Dynaset保存查询结果,它自动链接到数据库,因此用户可以查看Dynaset并即时看到别人对数据库的修改;用户修改Dynaset的记录能自动存回数据库,无需另写修改数据库内容的SQL语句。如果Dynaset是多表Join操作生成的,则是不可修改。 Jet 2.xJet 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的功能[3]。 Jet 3.xJet 3.0在1995年第三季發表,Jet 3.5則是在1996年第三季發表,與Jet 2.x不同的是,它只有32位元的版本,提供給Windows 95以及Windows NT等作業系統使用,其主要新功能為支援資料庫複製(Replication),多執行緒支援以及動態緩衝區 (dynamic buffer)的能力,並使用全新的索引機制,可加快資料庫的速度,並且擴充DAO的物件模型[3]。采用了Microsoft Rushmore查询优化技术。Jet 3.0引入了隐式事务(Implicit transactions),即在上一条事务提交给数据库后,自动开始了下一条事务。但随后在Windows95平台上发现这对性能有负面影响,Jet 3.5又删除了这一特性。 Jet 4.0Jet 4.0是Microsoft發表的最後一個Jet引擎版本,它支援了下列的能力:
连接字符串与支援的資料庫连接字符串
如果执行Insert Into语句时却出现异常:“操作必须使用一个可更新的查询”,这时可能需要把IMEX的值从2改为1尝试。 Microsoft AccessAccess是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 ExcelExcel則是在Jet 2.x開始支援的資料儲存體,雖然可以使用SELECT,INSERT,UPDATE三種查詢,但無法使用DELETE刪除資料,而且其SQL指令的使用限制也很多[4]。 Excel的驅動程式由MSEXCL40.DLL提供,目前可支援:
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 ExchangeMicrosoft 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";
ParadoxJet可以連接與存取Paradox資料庫,由MSPBDE40.DLL支援,目前可用的版本有:
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\Program Files\Microsoft Office\Office;
Extended Properties=Paradox 5.x
dBasedBase檔案的支援由MSXBDE40.DLL支援,目前可用的版本有:
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-3Lotus 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的連線字串為[5]: Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\myFolder\myAccess2007file.accdb;
Persist Security Info=False;
Excel 2007的連線字串為[5]: 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 位。 參考資料
|
Portal di Ensiklopedia Dunia