In addition to the functionality provided by a Level 1 interface
conformant driver, a Level 2 interface conformant driver allows an application to do all
of the following:
- Use three-part naming conventions for database tables and views.
- Describe dynamic parameters by calling SQLDescribeParam
- Use input parameters, output parameters, input/output parameters, and
result values of stored procedures.
- Use bookmarks, including retrieving bookmarks by calling SQLDescribeCol
and SQLColAttribute; fetching based on a bookmark by calling SQLFetchScroll
with the FetchOrientation argument set to SQL_FETCH_BOOKMARK; and update, delete,
and fetch by bookmark operations by calling SQLBulkOperations with the Operation
argument set to SQL_UPDATE_BY_BOOKMARK, SQL_DELETE_BY_BOOKMARK, or SQL_FETCH_BY_BOOKMARK.
- Retrieve advanced information about the data dictionary by calling SQLColumnPrivileges,
SQLForeignKeys, and SQLTablePrivileges.
- Use ODBC functions instead of SQL statements to perform additional
database operations by calling SQLBulkOperations with SQL_ADD, or SQLSetPos
with SQL_DELETE or SQL_UPDATE.
- Enable asynchronous execution of ODBC functions for specified individual
SQL statements.
- Obtain automatic update row-identifying column information for any tables
in the data source by calling SQLSpecialColumns.
- Change cursor concurrency states from "read-only" to other
locked states.
- The ability to time out login requests and SQL queries.
- The ability to change the default isolation level; i.e. the ability to
execute transactions with the "serializable" level of isolation.