Datasheet

Chapter 1
18
DAO
Let's start to put some meat on these bones. DAO (Data Access Objects) was Microsoft's first attempt at
providing programmers with an object-oriented way of manipulating databases. It was invented for
Access v1.0, and updated in later versions of Access and Visual Basic up to Access 97 and Visual Basic
v5.0. Many of the original DAO commands have been retained through the years for backwards
compatibility, meaning that the syntax required for performing operations can be quite ugly at times.
One of the biggest drawbacks of DAO is that it assumes data sources to be present on the local
machine. While it can deal with ODBC connections to database servers such as Oracle and FoxPro,
there are some things that make sense with remote data sources that cannot be achieved.
RDO
RDO (Remote Data Objects) is another object-oriented data access interface to ODBC. The methods
and objects that it contains are similar in style to DAO, but they expose much more of the low-level
functionality of ODBC. Although it doesn't deal very well with databases such as Access, its support for
other large databases – Oracle, SQL Server, etc. – made it very popular with a lot of developers. This
support focuses on its ability to access and manage the more complicated aspects of stored procedures
(compiled commands used to maintain data in the database) and complex record sets (sets of data
retrieved from the database).
ADO
ADO (ActiveX Data Objects) was first released in late 1996, primarily as a method of allowing ASP to
access data, and initially supported only very basic client-server data-access functionality. Microsoft
intended it eventually to replace DAO and RDO, and pushed everyone to use it, but at the time it only
provided a subset of the features of two other technologies that were much more popular.
With the release of ADO v1.5, support for disconnected record sets was introduced, as was an OLE DB
provider for Microsoft Access. With the release of ADO v2.0 in 1998, it went from being a subset of
other technologies, to having a richer set of features. OLE DB drivers for both SQL Server and Oracle
were released, meaning that access to enterprise-level database systems was feasible for the first time,
and support for native providers (ones that didn't rely on ODBC) was added. Further increases in
functionality were introduced in later versions up to v2.7.
ADO.NET
ADO.NET almost doesn't fit in this discussion – it's an entirely new data access technology that builds
on the successes of ADO, but is only really related to it in name. The improvements lie in its support for
different types of data store, its optimization for individual data providers, its utility in situations where
the data is stored remotely from the client, and its ability to deal with applications where there are large
numbers of users simultaneously accessing the data. The key to doing this is through features that
separate it from the technologies that preceded it: the use of disconnected data, managed providers (we
will look at both of these shortly), and XML.