What's New in DAO?

   

DAO 3.6

DAO 3.6 has been updated to use the Microsoftฎ Jet 4.0 database engine. This includes enabling all interfaces for Unicode. Data is now provided in unicode (internationally enabled) format rather than ANSI. No other new features were implemented.

Support for the dBase and Paradox ISAMs now require the installation of the Borland database engine. Additionally, Jet 4.0 does not offer a Visual FoxPro ISAM, you need to use the Visual FoxPro ODBC Driver instead. These changes do not affect 3.5x applications and only affect developers who explicitly update their applications to use DAO 3.6, because DAO 3.5x and DAO 3.6 can coexist on the same computer.

DAO 3.5

DAO 3.5 introduced a new client/server connection mode, called "ODBCDirect." ODBCDirect establishes a connection directly to an ODBC data source, without loading the Microsoft Jet database engine into memory, and is useful in situations where specific features of ODBC are required.

For Microsoft Jet databases, there are also new interfaces to expose Microsoft Jet's new partial replication feature.

Note   You can send DAO queries to a variety of different database servers with ODBCDirect, and different servers will recognize slightly different dialects of SQL. Therefore, context-sensitive Help is no longer provided for Microsoft Jet SQL, although online Help for Microsoft Jet SQL is still included through the Help menu. Be sure to check the appropriate reference documentation for the SQL dialect of your database server when using either ODBCDirect connections or pass-through queries in Microsoft Jet-connected client/server applications.

New DAO 3.5 Interfaces for ODBCDirect

New Capabilities with ODBCDirect

Server Connections

Available only in the ODBCDirect object model, the new Connection object contains information about a connection to an ODBC data source, such as the server name, the data source name, and so on. It is similar to a Database object, and will look very familiar if you've ever opened a Database object on an ODBC data source. In fact, a Connection object and a Database object represent different references to the same object, and new properties on each of these two object types allow you to obtain a reference to the other corresponding object, which simplifies the task of converting existing ODBC client applications that use Microsoft Jet to use ODBCDirect instead.

Batch Updates

A new batch update cursor is available for client applications that need to work with a cursor without holding locks on the server or issue update requests one record at a time. Instead, the client stores update information on many records in a local buffer (or "batch"), and then issues a batch update.

Because of the time lag between opening a Recordset and sending a batch of updates from that Recordset back to the server, other users have an opportunity to change the original data before your changes are sent to the server, so your changes "collide" with another user's changes. Several new features are available to help you determine where such collisions have occurred, following a batch update, and give you some options for resolving them.

Asynchronous Method Execution

The Execute, MoveLast, OpenConnection, and OpenRecordset methods feature the dbRunAsync option. This allows the client application to do other tasks (such as loading forms, and so on) while the method is executing. You can also poll to see whether the task is complete, and terminate an asynchronous task.

Client Support for ODBC Cursors

Four different Recordset types support the following ODBC cursor types:

ODBC Cursor Recordset type
Dynamic dbOpenDynamic (New in DAO 3.5)
Dynaset dbOpenDynaset
Forward-Only dbOpenForwardOnly (New in DAO 3.5)
Static dbOpenSnapshot

New DAO 3.5 Interfaces for the Microsoft Jet Database Engine

New Capabilities with the Microsoft Jet Database Engine

Partial Replication

Version 3.5 of the Microsoft Jet database engine allows users to replicate portions of a table instead of the whole table (only row restrictions are permitted, not columns). There are two types of filters used in a partial replica — Boolean and relationship. Boolean filters select only rows that meet a certain criteria to limit the rows in a table that are replicated. DAO represents this filter with the ReplicaFilter property on a TableDef. Relationship filters enforce a relationship between partially replicated tables to limit the rows in a table that are replicated. With DAO, you can set the PartialReplica property on a Relation which allows that Relation to be used in partial replication.

New Recordset Type

In DAO 3.5, dbOpenForwardOnly is a new type argument for the OpenRecordset method. This new Recordset type behaves in the same way as a DAO 3.0 snapshot-type Recordset opened with the dbForwardOnly option.

Run-time Registry Override

The new SetOption method allows you to override Microsoft Jet Registry settings at run time. This lets you fine tune Microsoft Jet query performance, timeout delays, and so on.