Microsoft holds a dubious reputation in the software development industry based on their past efforts to crowd out competitors and force developers and end users to work in a strictly Microsoft environment. No so with ADO! In an attempt to keep developers from switching to non-platform-specific development environments like Java, Microsoft included ADO drivers for almost any data source you can imagine -- text files, Oracle databases, IBM DB2 databases and Excel spreadsheets join the expected Access and SQL Server databases on the list of support products.
ADO is an application programmer's interface (API) that provides developers with an easy way to access the underlying OLE DB data access interface. It's part of Microsoft's overall Component Object Model (COM) strategy and, as such, works in a variety of environments ranging from Visual Basic to Active Server Pages.
The ADO object model is actually quite simple -- there are only six total objects:
- The Connection object sets up a link between your program and the data source. This object contains all of the necessary configuration information and acts as a gateway for all of the other ADO objects. The Connection object is mandatory -- all implementations of ADO must support it.
- Each Connection object may have an associated collection of Error objects. ADO utilizes this collection when the connection returns more than one error message at a time. This collection is optional.
- The Command object represents a SQL statement or stored procedure that software executes against the datasource. Use of Command objects is optional -- data can be extracted directly from a Connection object, if desired.
- Command objects may have an associated collection of Parameter objects that provide additional information to the data source when executing the command. The Parameter collection is optional.
- Each command execution results in a Recordset containing the results of the query. This object is a mandatory part of ADO.
- Each Recordset object is composed of a number of Field objects that represent individual columns in the Recordset. This object is a mandatory feature of ADO.

