Alternatives


Strengths and weaknesses of the various database interfaces

InterfaceADO.NETADODAORDOOLE DBODBCMFC ODBC
Object Model +++++-+
Non-relational data sources +--+--
Low-level control  --++ 
Performance  - +++ 
Code-to-functionality ratio ++ -- 

A big difference (or advantage) of ADO over DAO and RDO is that it does not keep collections of recordsets, queries or connections therefore requires less resources.


ADO - ActiveX Data Objects

ADO is much simpler to use than OLE DB and can be classified as a high-level database interface. Also, ADO can be used with more programming languages than OLE DB. ADO provides an Automation interface. This enables ADO to be used from scripting languages, such as VBScript and JavaScript.


ACE - Access Connectivity Engine

This replaces DAO for Office 2007+


DAO - Data Access Objects

DAO talks directly to Access/Jet databases. DAO can also communicate with other databases through the Jet engine.
The DAO object model is better suited to object-oriented development than a straight API.
Integrating a set of disparate API functions into an object-oriented application typically means that the developer must write her own set of classes to encapsulate the API functions.
Rather than provide merely a bunch of functions, DAO provides a set of objects for connecting to a database and performing operations on the data.
These DAO objects are easy to integrate into the source code of an object-oriented application.


RDO - Remote Data Objects

RDO was originally developed as an abstraction of the ODBC API for Visual Basic programmers.
Therefore, RDO is closely tied to ODBC and Visual Basic.

Public dbRDOConnect as ADODB.connection 
Public dbRDORecordset as ADODB.recordset
Dim sConnectionStr as string
Dim sSQLQuery as string

SConnectionStr = "DSN =" & DatabaseName & ";"
                              "UID = " & UserId & ";"
                              "PWD =" & Password & ";"

Set dbRDOConnect as New RDOconnection

With dbRDOConnect
      .Cursordriver = rdUseODDC
       .Connect = sConnectionStr
       .EstablishConnection rddrivernoprompt

End With

Set sSQLQuery = ""
DbRDOrecordset.Open = dbRDOConnect.OpenRecordset(

OLE DB - Object Linking and Embedding DataBase

OLE DB could be classified as a low-level database API.
OLE DB incorporates the functionality of ODBC for relational databases and expands on it by providing access to nonrelational data sources.
OLE DB is great for C++ programmers since it requires manipulation of interface pointers


ODBC - Open DataBase Connectivity

ODBC provides a single API for client applications to work with different databases.
Applications that use the ODBC API can communicate with any relational database for which there is an ODBC driver.
Compared to other database interfaces, the ODBC API could be classified as a low-level database interface.
The ODBC API enables client applications to configure and control the database at a relatively low level.



© 2026 Better Solutions Limited. All Rights Reserved. © 2026 Better Solutions Limited TopPrevNext