Access to all types of data - Various data sources include e-mail,
text files, RDBMSs, ISAM/VSAM databases and all
ODBC data sources.
Supports free threading - ADO supports multiple client
connections through multiple threads in such a way that these threads do not interfere with each other.
Supports asynchronous queries - This basically means that after an
SQL query is submitted to the database server, control returns immediately to the
calling application, allowing the user to continue working while the query is being processed.
On completion of the query, the results are sent to the client.
Supports client-side and server-side cursors - Cursors are a mechanism that allow
access to and navigation of data in a Recordset. They are implemented on either the client-side or the server-side.
Traditionally, frequently updated Recordsets are implemented on the server-side while read-only Recordsets are
implemented on the client-side.
Supports disconnected Recordsets - After a Recordset is returned on
execution of a query, it is stored as a client-side cursor and the active connection is closed. After
changes have been committed to the Recordset, the connection is reestablished and all updates are
sent in a batch to the data store. This helps in reducing network traffic to a great extent.
Supports commands as connection methods - A unique feature of
ADO is that when a command is executed, a connection is first established internally before that command gets submitted
for execution. Compare this to traditional object models like DAO/RDO where a connection has to be established
explicitly before a command can be submitted.