Microsoft Jet Database Engine - History

History

Jet version Jet engine DLL file name MDB version
1.0 ?? ?? 1.0
1.1 1.10.0001 MSAJT110.DLL 1.0 / 1.1
2.0 2.00.0000 MSAJT200.DLL 1.0 / 1.1 / 2.0
2.5 2.50.1606 MSAJT200.DLL 1.0 / 1.1 / 2.0
3.0 3.0.0.2118 MSJT3032.DLL 1.0 / 1.1 / 2.0 / 3.0
3.5 3.51.3328.0 MSJET35.DLL 1.0 / 1.1 / 2.0 / 3.0
4.0 SP8 4.0.8015.0 MSJET40.DLL 1.0 / 1.1 / 2.0 / 3.0 / 4.0
ACE 12.0 12.0.xxxx.xxxx ACECORE.DLL 1.0 / 1.1 / 2.0 / 3.0 / 4.0 / ACE
ACE 14.0 14.0.xxxx.xxxx ACECORE.DLL 3.0 / 4.0 / ACE
Sources:
  • http://support.microsoft.com/kb/178880/en
  • http://support.microsoft.com/kb/282010/en
  • http://support.microsoft.com/kb/239114/en
Application/Version Jet version
Microsoft Access 1.0 1.0
Microsoft Access 1.1 1.1
Microsoft Access 2.0 2.0
Microsoft Access 2.0 Service Pack 2.5
Microsoft Access 95 / Excel 95 3.0
Microsoft Access 97 / Excel 97 / PowerPoint 97 / Word 97 3.5
Microsoft Access 2000 4.0 SP1
Microsoft Access 2002
Microsoft Access 2003 –
Microsoft Access 2007 ACE 12.0
Microsoft Access 2010 ACE 14.0
Visual Basic 3.0 1.1
Visual Basic Compatibility Layer 2.0
Visual Basic 4.0 16-bit 2.5
Visual Basic 4.0 32-bit 3.0
Visual Basic 5.0 3.5
Visual C++ 4.X 3.0
Visual C++ 5.0 3.5
Microsoft Project 4.1 / Project 95 3.0
Internet Information Server 3.0 3.5
SQL Server 7.0 4.0
Redistributable installers
Jet 3.51 web download 3.5+
MDAC 2.1 4.0 SP1
MDAC 2.5 4.0 SP3 to SP6+
Jet 4.0 4.0 SP3 to SP8
2007 Office System Driver ACE 12.0
Microsoft Access Database Engine 2010 ACE 14.0
Operating systems
Windows Me 4.0 SP3
Windows 2000 4.0 SP3
Windows XP 4.0 SP5+
Windows Server 2003 4.0 SP6+
Windows Vista 4.0 SP8+
Windows Server 2008 4.0 SP8+
Windows 7 4.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 Autonumber
  • How to obtain the latest service pack for the Microsoft Jet 4.0 Database Engine

Jet originally started in 1992 as an underlying data access technology that came from a Microsoft internal database product development project, code named Cirrus. Cirrus was developed from a pre-release version of Visual Basic code and was used as the database engine of Microsoft Access. Tony Goodhew, who worked for Microsoft at the time, says

"It would be reasonably accurate to say that up until that stage Jet was more the name of the team that was assigned to work on the DB engine modules of Access rather than a component team. For VB 3.0 they basically had to tear it out of Access and graft it onto VB. That's why they've had all those Jet/ODBC problems in VB 3.0."

Jet became more componentised when Access 2.0 was released because the Access ODBC developers used parts of the Jet code to produce the ODBC driver. A retrofit was provided that allowed Visual Basic 3.0 users to use the updated Jet issued in Access 2.0.

Jet 2.0 was released as several dynamic linked libraries (DLLs) that were utilised by application software, such as Microsoft's Access database. DLLs in Windows are "libraries" of common code that can be used by more than one application—by keeping code that more than one application uses under a common library which each of these applications can use independently code maintenance is reduced and the functionality of applications increases, with less development effort. The three DLLs that were comprised by Jet 2.0 were the Jet DLL, the Data Access Objects (DAO) DLL and several external ISAM DLLs. The Jet DLL determined what sort of database it was accessing, and how to perform what was requested of it. If the data source was an MDB file (a Microsoft Access format) then it would directly read and write the data to the file. If the data source was external, then it would call on the correct ODBC driver to perform its request. The DAO DLL was a component that programmers could use to interface with the Jet engine, and was mainly used by Visual Basic and Access Basic programmers. The ISAM DLLs were a set of modules that allowed Jet to access three ISAM based databases: Xbase, Paradox and Btrieve.. Jet 2.0 was replaced with Jet 2.1, which used the same database structure but different locking strategies, making it incompatible with Jet 2.0

Jet 3.0 included many enhancements, including a new index structure that reduced storage size and the time that was taken to create indices that were highly duplicated, the removal of read locks on index pages, a new mechanism for page reuse, a new compacting method for which compacting the database resulted in the indices being stored in a clustered-index format, a new page allocation mechanism to improve Jet's read-ahead capabilities, improved delete operations that speeded processing, multithreading (three threads were used to perform read ahead, write behind, and cache maintenance), implicit transactions (users did not have to instruct the engine to start manually and commit transactions to the database), a new sort engine, long values (such as memos or binary data types) were stored in separate tables, and dynamic buffering (whereby Jet's cache was dynamically allocated at start up and had no limit and which changed from a first in, first out (FIFO) buffer replacement policy to a least recently used (LRU) buffer replacement policy). Jet 3.0 also allowed for database replication. Jet 3.0 was replaced by Jet 3.5, which uses the same database structure, but different locking strategies, making it incompatible with Jet 3.0.

Jet 4.0 gained numerous additional features and enhancements.

  • Unicode character storage support, along with an NT sorting method that was also implemented in the Windows 95 version;
  • Changes to data types to be more like SQL Server's (LongText or Memo; Binary; LongBinary; Date/Time; Real; Float4; IEEESingle; Double; Byte or Tinyint; Integer or Integer synonyms Smallint, Integer2, and Short; LongInteger or LongInteger synonyms Int, Integer, and Counter; Currency or Money; Boolean and GUID); a new decimal data type
  • Memo fields could now be indexed
  • Compressible data types
  • SQL enhancements to make Jet conform more closely to ANSI SQL-92
  • Finer grained security; views support; procedure support
  • Invocation and termination (committing or rolling back) of transactions
  • Enhanced table creation and modification
  • Referential integrity support
  • Connection control (connected users remain connected, but once disconnected they cannot reconnect, and new connections cannot be made. This is useful for database administrators to gain control of the database)
  • A user list, which allows administrators to determine who is connected to the database
  • Record-level locking (previous versions only supported page-locking)
  • Bi-directional replication with MS SQL Server.

Jet 4 databases can be "upsized" (upgraded) to "an equivalent database on SQL Server with the same table structure, data, and many other attributes of the original database" if the developer has a copy of Microsoft Office 2000 Professional Edition via a Microsoft Access Upsizing Wizard utility. Reports, queries, macros and security are not handled by this tool, meaning that some manual modifications may need to be done if the developer has been heavily reliant on these Jet features.

Jet has been included in every version of Windows from Windows 2000 to Windows 7, and therefore is no longer distributed separately with the Microsoft Data Access Components (MDAC). Access 2003 relied on the Jet engine component of the operating system for its data storage and query processing.

With version 2007 onwards, Access includes an Office-specific version of Jet, initially called the Office Access Connectivity Engine (ACE), but which is now called the Access Database Engine. This engine is fully backward-compatible with previous versions of the Jet engine, so it reads and writes (.mdb) files from earlier Access versions. It introduces a new default file format, (.accdb), that brings several improvements to Access, including complex data types such as multivalue fields, the attachment data type and history tracking in memo fields. It also brings security and encryption improvements and enables integration with Microsoft Windows SharePoint Services 3.0 and Microsoft Office Outlook 2007.

The engine in Microsoft Access 2010 discontinued support for Access 1.0, Access 2.0, Lotus 1-2-3 and Paradox files. A 64-bit version of the ACE Driver/Provider has been introduced, which in essence provides a 64-bit version of Jet. The driver is not part of the Windows operating system, but is available as a redistributable. Previously the Jet Database Engine was only 32-bit and did not run natively under 64-bit versions of Windows. This meant that native 64-bit applications (such as the 64-bit versions of SQL Server) could not access data stored in MDB files through ODBC, OLE DB, or any other means, except through intermediate 32-bit software (running in WoW64) that acted as a proxy for the 64-bit client.

From a data access technology standpoint, Jet is considered a deprecated technology by Microsoft, but it is an intrinsic part of Windows, and therefore Microsoft continues to support it.

Read more about this topic:  Microsoft Jet Database Engine

Famous quotes containing the word history:

    The steps toward the emancipation of women are first intellectual, then industrial, lastly legal and political. Great strides in the first two of these stages already have been made of millions of women who do not yet perceive that it is surely carrying them towards the last.
    Ellen Battelle Dietrick, U.S. suffragist. As quoted in History of Woman Suffrage, vol. 4, ch. 13, by Susan B. Anthony and Ida Husted Harper (1902)

    The myth of independence from the mother is abandoned in mid- life as women learn new routes around the mother—both the mother without and the mother within. A mid-life daughter may reengage with a mother or put new controls on care and set limits to love. But whatever she does, her child’s history is never finished.
    Terri Apter (20th century)

    What has history to do with me? Mine is the first and only world! I want to report how I find the world. What others have told me about the world is a very small and incidental part of my experience. I have to judge the world, to measure things.
    Ludwig Wittgenstein (1889–1951)