Intent supports ODBC-based access to different databases and data sources through a set of Designs and Functions. Their implementation is based on both ODBC and Microsoft DAO technology (which has become obsolete). In particular there is no DAO support for 64-bit Windows platforms.
Microsoft’s .NET framework includes ADO.NET as a set of libraries that facilitate a common interaction model with different data sources. By default, ADO.NET enables communication to the following data providers:
Prior to the ADO.Net library, Intent included two Designs for ODBC support. ODBC_Database and ODBC_Recordset provided the ODBC functionality for Intent applications. A “database” instance was typically created by supplying a “dsn” string. The ODBC Designs included methods to return the list of tables and the list of columns in a given table. A “recordset” instance, created as a child of a database part, required an SQL query string. The recordset was the main workhorse object with a variety of methods for querying, modifying, or traversing a record set. A record set had the notion of a “current record” which acts as the target of certain operations.
The abstraction presented by ADO.NET is significantly different from that of ODBC. A key difference is that ADO.NET does not have a single type that directly corresponds to ODBC’s record set; the equivalent functionality is distributed over several types. Unlike ODBC, the API directly interacts with libraries written for specific databases, thus eliminating inefficiencies of an intermediate layer.
ADO.NET has two modes of operation called connected mode and disconnected mode. In the connected mode any read or write operation must be done while being connected to a data source. In the disconnected mode data is read into an equivalent of an in-memory database and all operations are done on that data.
To start any interaction with some data source you must first establish a connection. A data source can be anything from a simple Excel file, through a modest Access database, to a commercial grade database like SQL Server or Oracle. The connection behavior is implemented in .NET in a base class called DbConnection. A new Intent Design called DbConnection corresponds to this object and it applies to both modes and is roughly analogous to the current odbc_Database Design.