The Level 2 interface conformance level includes the Level 1 interface conformance–level functionality, plus the following features:
201 | Use three-part names of database tables and views. (For more information, see the two-part naming support feature 101 in “Level 1 Interface Conformance.”) |
202 | Describe dynamic parameters, by calling SQLDescribeParam. |
203 | Use not only input parameters, but also output and input/output parameters, and result values of stored procedures. |
204 | Use bookmarks, including retrieving bookmarks by calling SQLDescribeCol and SQLColAttribute on column number 0; 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. |
205 | Retrieve advanced information on the data dictionary, by calling SQLColumnPrivileges, SQLForeignKeys, and SQLTablePrivileges. |
206 | 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. (Support for calls to SQLSetPos with the LockType argument set to SQL_LOCK_EXCLUSIVE or SQL_LOCK_UNLOCK is not a part of the conformance levels, but is an optional feature.) |
207 | Enable asynchronous execution of ODBC functions for specified individual statements. |
208 | Obtain the SQL_ROWVER row-identifying column of tables, by calling SQLSpecialColumns. (For more information, see the support for SQLSpecialColumns with the IdentifierType argument set to SQL_BEST_ROWID as feature 20 in “Core Interface Conformance.”) |
209 | Set the SQL_ATTR_CONCURRENCY statement attribute to at least one value other than SQL_CONCUR_READ_ONLY. |
210 | The ability to time out login request and SQL queries (SQL_ATTR_LOGIN_TIMEOUT and SQL_ATTR_QUERY_TIMEOUT). |
211 | The ability to change the default isolation level; the ability to execute transactions with the “serializable” level of isolation. |