Datasheet
Figure 1-1
Data Access Consumers
Developers who use languages that support pointers — such as C, C++, VJ++, and so on — can speak
directly to the ODBC and OLE-DB APIs. However, developers using a language such as Visual Basic
need another layer. This is where the data access consumers such as DAO, RDO, ADO, and ADO.NET
come into play.
DAO
With the release of Visual Basic 2.0, developers were introduced to a new method for accessing data,
known as Data Access Objects (DAO). This was Microsoft’s first attempt to create a data consumer API.
Although it had very humble beginnings, and when first released only supported forward-only opera-
tions against ODBC data sources, it was the beginning of a series of libraries that would lead developers
closer to the ideal of Universal Data Access. It also helped developers using higher-level languages such
as Visual Basic to take advantage of the power of ODBC that developers using lower-level languages
such as C were beginning to take for granted.
DAO was based on the JET engine, which was largely designed to help developers take advantage of the
desktop database application Microsoft was about to release, Microsoft Access. It served to provide
another layer of abstraction between the application and data access, making the developer’s task sim-
pler. Although the initial, unnamed release with Visual Basic 2.0 only supported ODBC connections, the
release of Microsoft Access 1.0 marked the official release of DAO 1.0, which supported direct communi-
cation with Microsoft Access databases without using ODBC. Figure 1-2 shows this relationship.
DAO 2.0 was expanded to support OLE-DB connections and the advantages that come along with it. It
also provided a much more robust set of functionality for accessing ODBC data stores through the JET
engine. Later, versions 2.5 and 3.0 were released to provide support for ODBC 2.0 and the 32-bit OS
introduced with Windows 95.
Application
OLE-DB
Consumer
Data Store
OLE-DB
Provider
Data Source
Specific API
6
Chapter 1
03_584375 ch01.qxd 10/28/05 10:49 PM Page 6