RDO is a popular way to build efficient data access to relational ODBC databases. With RDO, you can create simple cursorless result sets, or more complex batch or client-side cursors. You can limit the number of rows returned and monitor all of the messages and errors generated by the remote data source without compromising the executing query.
One of the important features in RDO that is not available in DAO is the ability to handle queries and stored procedures that return multiple result sets. This feature is commonly used whenever you need to load multiple controls (such as combo boxes) with data from multiple tables. This feature eliminates the redundant processing and network traffic overhead of using many separate queries.
Note Because the object models are very similar, you can take your existing applications that use DAO data access and easily convert them to use RDO. For more information on migrating from DAO to RDO, search for "RDO Compared to Microsoft Jet/DAO" in MSDN Library Visual Studio 6.0.
Most RDO methods can be executed either synchronously, asynchronously, or through the use of event procedures to notify your code when operations are complete or about to be executed. Using the asynchronous operations and event procedures, your application can do other work while lengthy queries are executed.
While RDO and any specific ODBC driver can leverage unique data source functions by directly exposing the ODBC API functions, the same functions might not be supported by other drivers. If your application is designed to be used across a variety of databases, these direct functions should be used carefully or not at all.
RDO has the ability to dissociate and reassociate an rdoQuery object from its connection. This is especially useful because you can associate the query with other connections, and thus apply the same query across multiple data sources without re-creating the individual connections.
RDO (like ADO) also includes a client batch cursor library that supports optimistic batch updates. With batch updates, you can create a result set, modify the data as required, and subsequently make all of the changes using the batch update method. This improves performance by reducing server, network, and ODBC overhead.
An RDO-based application uses the following operations to access a data source.
With RDO you can create database-independent code that automatically adapts to a variety of ODBC databases.