Remote Data Objects
Remote Data Objects (RDO) is an efficient alternative to DAO for connecting to remote data sources. RDO represents an object layer over the ODBC API, which means that RDO realizes the performance gains of the ODBC API. As a COM interface and a COM automation server, RDO can be called from any 32-bit development system using ODBC data sources.
Figure 7.3 How RDO communicates with ODBC RDO provides significantly better performance and more flexibility than DAO when accessing remote database engines. Although you can access any ODBC data source with RDO, its features are designed to take advantage of database servers such as Microsoft SQL Server that use sophisticated query engines.
RDO offers a number of benefits over DAO ”and ODBCDirect ”when connecting to an ODBC data source:
- You can execute queries that return multiple result sets, or execute stored procedures that return result sets. A result set is similar to a DAO recordset.
- 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.
- RDO supports synchronous and asynchronous operations so your application does not need to be blocked while lengthy queries are executed.
RDO vs. DAO
Although the design objectives of RDO and DAO are very different, there are many similarities between the implementations .
The following chart lists the most common DAO and RDO objects and how they relate to each other.
| RDO Object | Equivalent DAO/Jet Object |
| RdoEngine | DBEngine |
| RdoError | Error |
| RdoEnvironment | Workspace |
| RdoConnection | Workspace |
| RdoTable | TableDef |
| RdoResultset | Recordset |
| Not Implemented | Table |
| Keyset | Dynaset |
| Static | Snapshot |
| Dynamic | None |
| Forward-only | Forward-only |
| Cursorless | None |
| RdoColumn | Field |
| RdoQuery | QueryDef |
| RdoParameter | Parameter |
| Not Implemented | Relation |
| Not Implemented | Group |
| Not Implemented | User |