Appendix G: Driver Guidelines for Backward Compatibility
This appendix provides information for driver writers working on ODBC 3.x drivers that need to support ODBC 2.x applications. Changes between ODBC 2.x and ODBC 3.x fall into three categories; for more information about these categories, see "Backward Compatibility and Standards Compliance" in Chapter 17: Programming Considerations.
- New Features. New features are features that exist in ODBC 3.x and not in ODBC 2.x. ODBC 3.x drivers generally do not have to worry about backward compatibility with new features because ODBC 2.x applications never use them. The sole exceptions to this are features related to SQLFetch, SQLFetchScroll, SQLSetPos, and SQLExtendedFetch; for more information, see "Block Cursors, Scrollable Cursors, and Backward Compatibility," later in this appendix.
- Duplicated Features. Duplicated features are features that are implemented differently in ODBC 3.x and ODBC 2.x. ODBC 3.x drivers do not have to worry about backward compatibility with duplicated features because the Driver Manager always maps ODBC 2.x features to ODBC 3.x features when calling an ODBC 3.x driver. Thus, an ODBC 3.x driver sees only ODBC 3.x features. For more information about these mappings, see "Mapping Deprecated Functions," later in this appendix.
- Behavioral Changes. Behavior changes are features that are handled differently in ODBC 3.x and ODBC 2.x. ODBC 3.x drivers have to worry about behavior changes and act in response to the SQL_ATTR_ODBC_VERSION environment attribute set by the application. For more information, see "Behavioral Changes and ODBC 3.x Drivers," later in this appendix.
For information about other topics where backward compatibility of ODBC 3.x drivers with ODBC 2.x drivers may be of concern to users and developers, see the following sections of this appendix: