Conformance to the ODBC Standard
Third-party client applications that use the ODBC interface to access DP4 data sources (databases), do so by sending SQL statements to the DP4 ODBC server. The DP4 ODBC server, which might also be termed an SQL server, uses the DP4 SQL Engine to translate these statements into native DP4 access requests and directs them to the DP4 database manager. The database manager then accesses the appropriate DP4 database, returning whatever data was requested.
The general implications of accessing DP4 databases through the ODBC interface are:
- The DP4 SQL Engine determines what SQL syntax is supported. See the Reference for details.
- DP4 databases contain native features that are not supported by SQL
More specifically, the DP4 ODBC interface is an implementation of ODBC level 2 version 1, with the following restrictions:
- The DP4 database management system uses optimistic concurrency control based on timestamps; the ODBC interface does not support changing this to any other type of concurrency control
- The DP4 SQL Engine does not currently support 'CREATE TABLE' and other data definition statements
- The DP4 SQL Engine does not support the execution of a 'SELECT' statement with multiple sets of parameters. Only one set of parameters may be bound to a 'SELECT' statement. Note, however, that updates ('INSERT', 'UPDATE' and 'DELETE' statements) with multiple sets of parameters are emulated by the DP4 driver
- The DP4 SQL Engine does not support moving the position of the current of row back into a block of rows that have already been fetched, without moving the cursor which determines the next row to be fetched. This means that fetching more than one row at a time with the extended fetch function is not supported
- The SQLForeignKeys and SQLStatistics functions are not implemented and so extended fetch is not supported; the result set provided by these functions can only be accessed by a fetch in the forward direction
Our primary intention is to make the DP4 database usable with the widest possible range of ODBC applications, not rigorous adherence and implementation of particular standards. It would not be helpful for us to tell you that you cannot use a particular tool, because it is deviating from ODBC or SQL standards, though this would in fact often be the case. If you have an issue with our ODBC drivers please help us to help you not by insisting on blanket implementation of a raft of new features, but by allowing us to address the specifc problem you are encountering.