Chapter 3: ODBC Driver Conformance
3.2 Responses to SQLGetInfo
Applications call the SQLGetInfo function to retrieve details about support a specific driver and data source provide for different ODBC functionality.
Applications supply the InfoType argument to SQLGetInfo to specify what information type they seek. SQLGetInfo returns the information to the InfoValuePtr output argument. Table 3–1 lists each InfoType argument the ODBC Driver recognizes along with the associated value returned to SQLGetInfo. Shaded rows indicate information types renamed or deprecated for ODBC 3.0.
For more detail about the SQLGetInfo function see the Microsoft ODBC Programmer’s Reference.
| Description | InfoType Argument | Returns |
|---|---|---|
| Shaded rows indicate information types renamed or deprecated for ODBC 3.0 | ||
| Guaranteed execute privileges on all procedures returned by SQLProcedures | SQL_ | Y (guaranteed) |
| Guaranteed read access to all table names returned by SQLTables | SQL_ | N (not guaranteed) |
| Maximum number of active connections | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Maximum number of active environments | SQL_ (ODBC 3.0) | 0 (no limit) |
| Maximum number of active SQL statements | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Aggregate function support | SQL_ (ODBC 3.0) | SQL_AF_ALL | SQL_AF_AVG | SQL_AF_COUNT | SQL_AF_DISTINCT | SQL_AF_MAX | SQL_AF_MIN | SQL_AF_SUM |
| Support for ALTER DOMAIN statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for ALTER SCHEMA statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for ALTER TABLE clauses | SQL_ALTER_TABLE | SQL_ |
| Level of asynchronous mode support | SQL_ASYNC_MODE (ODBC 3.0) | SQL_AM_NONE (not supported) |
| Behavior with respect to the availability of row counts in batches | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for batches | SQL_ (ODBC 3.0) | SQL_ |
| Support for bookmarks | SQL_ | 0 (does not support) |
| Position of qualifier in a qualified table name | SQL_ (Renamed for ODBC 3.0. Was SQL_ | SQL_QL_START (at the start of the name) |
| Support for catalog names | SQL_ (ODBC 3.0) | N (does not support) |
| Character used to separate table, column qualifiers | SQL_ (Renamed for ODBC 3.0. Was SQL_ | . (period) |
| Name for a catalog | SQL_ (Renamed for ODBC 3.0. Was SQL_ | "" (does not support) |
| Statements that support catalog names | SQL_ (Renamed for ODBC 3.0. Was SQL_ | 0 (does not support) |
| Default collation sequence name for the default character set | SQL_ (ODBC 3.0) | “ ” (unknown) |
| Support for column aliases | SQL_ | Y (supports) |
| Result of concatenation of NULL character column with non-NULL column | SQL_ | SQL_CB_NULL (result is null) |
| Conversion from BIGINT | SQL_ | SQL_CVT_CHAR| SQL_CVT_NUMERIC| SQL_CVT_TINYINT| SQL_ |
| Conversion from BINARY | SQL_ | SQL_CVT_CHAR | SQL_CVT_BINARY |
| Conversion from BIT | SQL_CONVERT_BIT | SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_ |
| Conversion from CHAR | SQL_ | SQL_CVT_BIT | SQL_CVT_BINARY | SQL_CVT_NUMERIC | SQL_CVT_TINYINT | SQL_ |
| Conversion from DATE | SQL_ | SQL_CVT_CHAR | SQL_CVT_DATE | SQL_ |
| Conversion from DECIMAL | SQL_ | 0 (does not support) |
| Conversion from DOUBLE | SQL_ | 0 (does not support) |
| Conversion from FLOAT | SQL_ | SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_ |
| Support for conversion functions | SQL_ | SQL_ |
| Conversion from INTEGER | SQL_ | SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_ |
| Conversion from INTERVAL_ | SQL_ (ODBC 3.0) | 0 (does not support) |
| Conversion from INTERVAL_ | SQL_ (ODBC 3.0) | 0 (does not support) |
| Conversion from LONGVARBINARY | SQL_ | 0 (does not support) |
| Conversion from LONGVARCHAR | SQL_ | 0 (does not support) |
| Conversion from NUMERIC | SQL_ | SQL_CVT_CHAR | SQL_CVT_INTEGER | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_ |
| Conversion from REAL | SQL_ | SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_ |
| Conversion from SMALLINT | SQL_ | SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_BIGINT | SQL_CVT_FLOAT | SQL_CVT_DOUBLE | SQL_CVT_TINYINT | SQL_ |
| Conversion from TIME | SQL_ | SQL_CVT_CHAR | SQL_CVT_TIME | SQL_ |
| Conversion from TIMESTAMP | SQL_ | SQL_CVT_CHAR | SQL_CVT_DATE |
| Conversion from TINYINT | SQL_ | SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_BIT | SQL_ |
| Conversion from VARBINARY | SQL_ | 0 (does not support) |
| Conversion from VARCHAR | SQL_ | 0 (does not support) |
| Support for table correlation names | SQL_ | SQL_ |
| Support for CREATE ASSERTION statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for CREATE CHARACTER SET statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for CREATE COLLATION statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for CREATE DOMAIN statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for CREATE SCHEMA statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for CREATE TABLE statement | SQL_ (ODBC 3.0) | SQL_ |
| Support for CREATE TRANSLATION statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for CREATE VIEW statement | SQL_CREATE_VIEW (ODBC 3.0) | SQL_ |
| Effect of COMMIT operation on cursors and prepared statements | SQL_ | SQL_CB_CLOSE (closes cursors but statements remain in prepared state) |
| Effect of ROLLBACK operation on cursors and prepared statements | SQL_ | SQL_CB_CLOSE (closes cursors but statements remain in prepared state) |
| Support for cursor sensitivity | SQL_ (ODBC 3.0) | SQL_INSENSITIVE (all cursors on the statement handle show the result set without reflecting any changes made to it by any other cursor within the same transaction) |
| Name of the data source as specified to the ODBC Administrator | SQL_ | (string containing the name) |
| Access limited to read-only | SQL_ | N (read-write access) |
| Name of the Dharma/SQL data source on the server system | SQL_ | (string containing the name) |
| Support for date-time literals | SQL_ (ODBC 3.0) | SQL_ |
| Name of the database product supporting the data source | SQL_DBMS_NAME | Dharma/SQL |
| Version of the database product | SQL_DBMS_VER | 6.2.1 |
| Support for creation and dropping of indexes | SQL_DDL_INDEX (ODBC 3.0) | SQL_ |
| Default transaction isolation level | SQL_ | SQL_ |
| Suppport for describing parameters via DESCRIBE INPUT statement | SQL_ (ODBC 3.0) | Y (supports) |
| Name of the dynamic link library file for the ODBC Driver | SQL_DRIVER_NAME | DHODBC.DLL |
| Supported ODBC version | SQL_ | 03.00 |
| Current Version of the ODBC Driver | SQL_DRIVER_VER | 06.20.1000 |
| Support for DROP ASSERTION statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for DROP CHARACTER SET statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for DROP COLLATION statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for DROP DOMAIN statement | SQL_DROP_DOMAIN (ODBC 3.0) | 0 (does not support) |
| Support for DROP SCHEMA statement | SQL_DROP_SCHEMA (ODBC 3.0) | 0 (does not support) |
| Support for DROP TABLE statement | SQL_DROP_TABLE (ODBC 3.0) | SQL_ |
| Support for DROP TRANSLATION statement | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for DROP VIEW statement | SQL_DROP_VIEW (ODBC 3.0) | SQL_ |
| Supported attributes of a dynamic cursor: subset 1 | SQL_ (ODBC 3.0) | 0 (does not support dynamic cursors) |
| Supported attributes of a dynamic cursor: subset 2 | SQL_ (ODBC 3.0) | 0 (does not support dynamic cursors) |
| Support for expressions in ORDER BY clause | SQL_ | Y (supports) |
| Direction that FETCH operations can support | SQL_ (Deprecated in ODBC 3.0.) | SQL_ |
| Single-tier driver behavior | SQL_FILE_USAGE | SQL_ |
| Supported attributes of a forward-only cursor: subset 1 | SQL_ (ODBC 3.0) | SQL_CA1_NEXT (supports SQL_FETCH_NEXT argument to SQLFetchScroll for forward-only cursors) |
| Supported attributes of a forward-only cursor: subset 2 | SQL_ (ODBC 3.0) | SQL_ |
| Supported extensions to SQLGetData | SQL_ | 0 (does not support) |
| Relationship between GROUP BY clause and columns in the select list | SQL_GROUP_BY | SQL_ |
| Case-sensitivity of user-supplied names | SQL_ | SQL_IC_LOWER (case insensitive, stored in lower case) |
| Character used to enclose delimited identifiers | SQL_ | " (double quotation mark) |
| Supported views in INFORMATION_SCHEMA | SQL_ (ODBC 3.0) | 0 (does not support) |
| Support for INSERT statement | SQL_ (ODBC 3.0) | SQL_ |
| Referential integrity syntax support | SQL_INTEGRITY (Renamed for ODBC 3.0. Was SQL_ | Y (supports referential integrity syntax) |
| Supported attributes of a keyset cursor: subset 1 | SQL_ (ODBC 3.0) | 0 (does not support keyset cursors) |
| Supported attributes of a keyset cursor: subset 2 | SQL_ (ODBC 3.0) | 0 (does not support keyset cursors) |
| Data-source specific keywords | SQL_KEYWORDS | absolute, action, add, all, allocate, and,any, are, as, asc, assertion, at, authorization, alter, avg, atta, begin, between, bit_length, bigint, bitstrig, binary, bit, both, by, cascade, cascaded, call, case, cast, catalog, char, character, char_length, character_length, check, close, cluster, coalesce, collate, collation, column, colroup_kw, colon, comma, commit, compress, concat, connect, connection, constraint, constraint_kw, constraints, continue, convert, corresponding, count, crete, cross, current, current_date, current_time, current_timestamp, current_user, cursor, database, datapages, date, day, deallocate, dec, decimal, declare, default, default_kw, deferrable, deferred, deinition, delete, describe, delete_kw, desc, describe, descriptor, diagnostics, disconnect, distint, div, domain, double, drop, dot, dh_f64_t, dba, end, else, end, end-exec, eqtok, escape, except, exception, exclusiv, exec, execute, exists, external, extract, false, fetch, file_kw, first, float, dh_f32_t, for, foreign, foreign_kw, fortran, found, from, full, e_tok, gt_tok, get, global, go, goto, grant, group, hash, having, hour, identified, identifier, identity, immediate, in, in_kw, include, index, indicator, inexpages, initially, inner, input, insensitive, insert, int, integer, intersect, interval, into, is, isolation, join, key, key_kw, language, last, leading, left, level, le_tok, like, lin, lt_tok, local, lock, log, long_kw, lower, lvarbinary, lvarchar, lpar, match, max, max_kw, min, min_kw, minu, minute, modify, mode, module, money, month, names, national, natural, nchar, ne_tok, next, no, nocompress, none, not, null, null_kw, nullif, number, numeric, nowait, octet_length, of, on,only, open, option, or, order, outer, outer_join, output, overlaps, pad, partial, pascal, pctfree, plus, position, precision, prepare, preserve, primary, primary_kw, prior, privileges, public, question, raw, read, real, realnumber, references, references_kw, relative, rename, resource, restrict, revoke, right, rollback, rows, rowid, rownum, rpar, schema, scroll, second, select, session, session_user, set, set_minus, share, size, smallint, some, space, sql, sqlca, sqlcode, sqlerror, sqlstate, sqlwarning, star, storage_manager, store_in_dharma, statistics, sring, substring, sum, synonym, sysdate, system_user, systime, systimestamp, table, temporary, then, time, timestamp, timezone_hour, timezone_minute, tinyint, to, trailing, transaction, trim, true, uid, union, unique, unknown, update, upper, usage, user, using, value, values, varbinary, varchar, varying, view, when, whenever, where, with, work, write, year, zone, ascade, odbcec, odbcet, odbcone, coment, odbces, odbcset |
| Support for escape clause in LIKE predicates | SQL_ | Y (supports) |
| Supported lock types | SQL_LOCK_TYPES (Deprecated in ODBC 3.0.) | 0 (does not support) |
| Maximum number of active concurrent statements in asynchronous mode | SQL_ (ODBC 3.0) | 0 (no limit) |
| Maximum length in hexadecimal characters of binary literals | SQL_ | 2000 |
| Maximum length of a table or column qualifier | SQL_ (Renamed for ODBC 3.0. Was SQL_ | 0 (does not support) |
| Maximum length in characters of character string literals | SQL_ | 2000 |
| Maximum length of a column name | SQL_ | 32 |
| Maximum number of columns allowed in GROUP BY clause | SQL_ | 0 (no limit) |
| Maximum number of columns allowed in an index | SQL_ | 100 |
| Maximum number of columns allowed in ORDER BY clause | SQL_ | 0 (no limit) |
| Maximum number of columns allowed in a select list | SQL_ | 0 (no limit) |
| Maximum number of columns allowed in a table | SQL_ | 500 |
| Maximum number of active SQL statements | SQL_ (Renamed for ODBC 3.0. Was SQL_ | 0 (no maximum) |
| Maximum length of a cursor name | SQL_ | 32 |
| Maximum number of active connections | SQL_ (Renamed for ODBC 3.0. Was SQL_ | 10 |
| Maximum length of user-defined names | SQL_ (ODBC 3.0) | 32 |
| Maximum number of bytes allowed in the combined fields of an index | SQL_ | 0 (no limit) |
| Maximum length of an owner name | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Maximum length of a procedure name | SQL_ | 32 |
| Maximum length of a table or column qualifier | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Maximum length in bytes of a table row | SQL_ | 0 (no limit) |
| Whether maximum row size includes LONGVARCHAR and LONGVARBINARY | SQL_ | Y |
| Maximum length of an owner name | SQL_ (Renamed for ODBC 3.0. Was SQL_ | 32 |
| Maximum number of characters in a SQL statement | SQL_ | 25000 |
| Maximum length of a table name | SQL_ | 32 |
| Maximum number of tables allowed in FROM clause | SQL_ | 250 |
| Maximum length of a user name | SQL_ | 32 |
| Support for multiple result sets | SQL_ | N (does not support) |
| Support for active transactions on multiple connections | SQL_ | Y (supports) |
| Whether data source requires length of LONGVARCHAR and LONGVARBINARY data | SQL_ | N |
| Support for NOT NULL clause in CREATE TABLE statement | SQL_ | SQL_ |
| Where null values are sorted in a list | SQL_ | SQL_NC_LOW (sorted at the low end of the list) |
| Numeric functions supported | SQL_ | SQL_FN_NUM_ABS | SQL_FN_NUM_ACOS | SQL_FN_NUM_ASIN | SQL_FN_NUM_ATAN | SQL_ |
| ODBC API conformance level | SQL_ (Deprecated in ODBC 3.0.) | SQL_OAC_LEVEL1 (supports level 1) |
| SQL Access Group (SAG) conformance | SQL_ | SQL_ |
| ODBC SQL syntax conformance | SQL_ (Deprecated in ODBC 3.0.) | SQL_ |
| Referential integrity syntax support | SQL_ (Renamed for ODBC 3.0.) | See SQL_INTEGRITY |
| ODBC version supported by driver manager | SQL_ODBC_VER | Returned by ODBC driver manager |
| Whether columns in ORDER BY clause must also be in select list | SQL_ | N |
| Support for outer joins | SQL_OUTER_JOINS | Y (supports) |
| Term for entity that has owner privileges on objects | SQL_OWNER_TERM (Renamed for ODBC 3.0.) | See SQL_SCHEMA_TERM |
| Statements that support use of owner qualifiers | SQL_OWNER_USAGE (Renamed for ODBC 3.0.) | See SQL_ |
| Characteristics of row counts available in a parameterized execution | SQL_ (ODBC 3.0) | SQL_ |
| Characteristics of result sets available in a parameterized execution | SQL_ (ODBC 3.0) | 0 (does not support) |
| Supported operations in SQLSetPos | SQL_ (Deprecated in ODBC 3.0.) | 0 (does not support SQLSetPos) |
| Statements that support positioned operations | SQL_ (Deprecated in ODBC 3.0.) | SQL_ |
| Term for procedures | SQL_ | procedure |
| SQL procedures support | SQL_PROCEDURES | Y (supports SQL procedures) |
| Position of qualifier in a qualified table name | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Character used to separate table, column qualifiers | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Term for object that qualifies table names | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Statements that support qualifiers | SQL_ (Renamed for ODBC 3.0.) | See SQL_ |
| Case-sensitivity of quoted user-supplied names | SQL_ | SQL_ |
| Detect changes to any row in mixed-cursor operations | SQL_ROW_UPDATES | Y |
| Term for entity that has owner privileges on objects | SQL_SCHEMA_TERM (Renamed for ODBC 3.0. Was SQL_OWNER_TERM) | owner |
| Statements that support use of owner qualifiers | SQL_ (Renamed for ODBC 3.0. Was SQL_OWNER_USAGE) | SQL_ |
| Concurrency control options supported for scrollable cursors | SQL_ (Deprecated in ODBC 3.0.) | 0 (does not support) |
| Options supported for scrollable cursors | SQL_ | SQL_ |
| Character to permit wildcard characters in search strings | SQL_ | \ (backslash) |
| Name of the system where the Dharma/SQL data source resides | SQL_SERVER_NAME | (string containing the name) |
| Special characters allowed in user-supplied names | SQL_ | _ (underscore) |
| Level of SQL-92 support | SQL_ (ODBC 3.0) | SQL_ |
| Datetime scalar functions supported | SQL_ (ODBC 3.0) | SQL_ |
| Behavior of DELETE statement that refers to a foreign key | SQL_ (ODBC 3.0) | SQL_ |
| Behavior of UPDATE statement that refers to a foreign key | SQL_ (ODBC 3.0) | SQL_ |
| GRANT statement clauses supported | SQL_SQL92_GRANT (ODBC 3.0) | SQL_ |
| Numeric scalar functions supported | SQL_ (ODBC 3.0) | SQL_ |
| Predicates supported | SQL_ (ODBC 3.0) | SP_EXISTS | SQL_ |
| Relational join operators supported | SQL_ (ODBC 3.0) | SQL_ |
| REVOKE statement clauses supported | SQL_ (ODBC 3.0) | SQL_ |
| Row value constructor expressions supported | SQL_ (ODBC 3.0) | 0 (does not support) |
| String scalar functions supported | SQL_ (ODBC 3.0) | SQL_SSF_CONVERT | SQL_SSF_LOWER | SQL_SSF_UPPER | SQL_ |
| Value expressions supported | SQL_ (ODBC 3.0) | SQL_SVE_CASE | SQL_SVE_CAST | SQL_ |
| CLI standards to which the driver conforms | SQL_ (ODBC 3.0) | SQL_ |
| Supported attributes of a static cursor: subset 1 | SQL_ (ODBC 3.0) | SQL_CA1_NEXT (supports SQL_FETCH_NEXT argument to SQLFetchScroll for static cursors) |
| Supported attributes of a static cursor: subset 2 | SQL_ (ODBC 3.0) | 0 (does not support any attributes in the subset)) |
| Whether static cursor changes are detectable | SQL_ (Deprecated in ODBC 3.0.) | 0 (does not support static cursors) |
| String functions supported | SQL_ | SQL_ |
| Predicates that support subqueries | SQL_SUBQUERIES | SQL_ |
| System functions supported | SQL_ | SQL_ |
| Term for tables | SQL_TABLE_TERM | table |
| Timestamp intervals supported for TIMESTAMPADD function | SQL_ | SQL_ |
| Timestamp intervals supported for TIMESTAMPDIFF function | SQL_ | SQL_ |
| Date-time functions supported | SQL_ | SQL_FN_TD_NOW | SQL_ |
| Support for DML, DDL within transactions | SQL_TXN_CAPABLE | SQL_TC_ALL (supports both DML and DDL) |
| Options for setting transaction isolation levels | SQL_ | SQL_ |
| UNION support | SQL_UNION | SQL_U_UNION | SQL_U_UNION_ALL |
| Name of user connected to the data source | SQL_USER_NAME | (string containing the name) |