EDB-ODBC Driver Functionality v12
You can use ODBC functions to query ODBC for specific information about the various attributes of the connection between EDB-ODBC and the server.
SQLGetInfo()
returns information about the EDB-ODBC driver and Advanced Server.SQLGetEnvAttr()
returns information about ODBC environment attributes.SQLGetConnectAttr()
returns information about attributes specific to an individual connection.SQLGetStmtAttr()
returns information about the attributes specific to an individual statement.
You can also use ODBC functions to set various attributes of the objects that you use to interface with ODBC:
- Use the
SQLSetConnectAttr()
function to set connection attributes. - Use the
SQLSetEnvAttr()
function to set environment attributes. - Use the
SQLSetStmtAttr()
function to set statement attributes.
SQLGetInfo()
The ODBC SQLGetInfo()
function returns information about the EDB-ODBC driver and Advanced Server. You must have an open connection to call SQLGetInfo()
, unless you specify SQL_ODBC_VER
as the info_type
. The signature for SQLGetInfo()
is:
conn_handle
The connection handle.info_type
The type of information SQLGetInfo() is retrieving.info_pointer
A pointer to a memory buffer that will hold the retrieved value.If the
info_type
argument isSQL_DRIVER_HDESC
orSQL_DRIVER_HSTMT
, theinfo_pointer
argument is bothInput
andOutput
.buffer_len
is the length of the allocated memory buffer pointed to byinfo_pointer
. Ifinfo_pointer
isNULL
,buffer_len
is ignored. If the returned value is a fixed size,buffer_len
is ignored.buffer_len
is only used if the requested value is returned in the form of a character string.string_length_pointer
is a pointer to anSQLSMALLINT
value.SQLGetInfo()
writes the size of the requested value in this integer.
A typical usage is to call SQLGetInfo()
with a NULL info_pointer
to obtain the length of the requested value, allocate the required number of bytes, and then call SQLGetInfo()
again (providing the address of the newly allocated buffer) to obtain the actual value. The first call retrieves the number of bytes required to hold the value; the second call retrieves the value.
If the size of the returned value exceeds buffer_len
, the information is truncated and NULL
terminated. If the returned value is a fixed size, string_length
is ignored (and the size of the requested value is not provided by SQLGetInfo()
).
SQLGetInfo()
writes information in one of the following formats:
- a
SQLUINTEGER
bitmask - a
SQLUINTEGER
flag - a
SQLUINTEGER
binary value - a
SQLUSMALLINT
value - a
NULL
terminated character string
SQLGetInfo()
returns SQL_SUCCESS
, SQL_SUCCESS_WITH_INFO
, SQL_ERROR
, or SQL_INVALID_HANDLE
.
The following table lists the information returned by EDB-ODBC about the Advanced Server connection:
SQL info_type Argument and Description | EDB_ODBC/Advanced Server Returns: |
---|---|
SQL_ACCESSIBLE_PROCEDURES: Indicates if procedures returned by SQLProcedures()can be executed by the application. | Returns N. Some procedures executed by the SQLProcedures() function may be executed by the application. |
SQL_ACCESSIBLE_TABLES: Indicates if the user has SELECT privileges on all table names returned by SQLTables(). | Returns N. The user may not have select privileges on one or more tables returned by the SQLTables() function. |
SQL_ACTIVE_CONNECTIONS prev. SQL_MAX_DRIVER_CONNECTIONS: Indicates the maximum number of connections EDB-ODBC can support. | Returns 0. There is no specified limit to the number of connections allowed. |
SQL_ACTIVE_ENVIRONMENTS: The number of active environments EDB-ODBC can support. | Returns 0. There is no specified limit to the number of environments allowed. |
SQL_ACTIVE_STATEMENTS prev. SQL_MAX_CONCURRENT_ACTIVITIES: Indicates the maximum number of active statements EDB-ODBC can support. | Returns 0. There is no specified limit to the number of active statements allowed. |
SQL_AGGREGATE_FUNCTION: Identifies the aggregate functions supported by the server and driver. | Returns SQL_AF_ALL |
SQL_ALTER_DOMAIN: Identifies the ALTER DOMAIN clauses supported by the server. | Returns 0. ALTER DOMAIN clauses are not supported. |
SQL_ALTER_TABLE: Identifies the ALTER TABLE clauses supported by the server. | Returns SQL_AT_ADD_COLUMN, SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE, SQL_AT_DROP_TABLE_CONSTRAINT, SQL_AT_CONSTRAINT_INITIALLY_DEFERRED, SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE, SQL_AT_CONSTRAINT_DEFERRABLE |
SQL_ASYNC_MODE: Level of Asynchronous Mode Supported by EDB-ODBC. | Returns SQL_AM_NONE. Asynchronous mode is not supported. |
SQL_BATCH_ROW_COUNT: Indicates how the driver returns row counts. | Returns SQL_BRC_EXPLICIT. Row Counts are available when executed by calling SQLExecute or SQLExecDirect. |
SQL_BATCH_SUPPORT: Indicates support for batch statement execution. | Returns: SQL_BS_SELECT_EXPLICIT, SQL_BS_ROW_COUNT_EXPLICIT. The driver supports explicit batches with result set and row count generating statements. |
SQL_BOOKMARK_PERSISTENCE: Indicates level of support for bookmarks. | Returns: SQL_BP_DELETE, SQL_BP_TRANSACTION, SQL_BP_UPDATE, SQL_BP_SCROLL. |
SQL_CATALOG_LOCATION Now SQL_QUALIFIER_LOCATION: Indicates the position of the catalog in a qualified table name. | Returns SQL_CL_START. The catalog portion of a qualified table name is at the beginning of the name. |
SQL_CATALOG_NAME Now SQL_QUALIFIER_NAME: Indicates support for catalog names. | Returns Y. The server supports catalog names. |
SQL_CATALOG_NAME_SEPARATOR Now SQL_QUALIFIER_NAME_SEPARATOR: Character separating the catalog name from the adjacent name element. | Returns '.' The server expects a '.' character between the qualifier and the table name. |
SQL_CATALOG_TERM Now SQL_QUALIFIER_TERM: The term used to describe a catalog. | Returns catalog. |
SQL_CATALOG_USAGE Now SQL_QUALIFIER_USAGE: Indicates the SQL statements that may refer to catalogs. | Returns SQL_CU_DML_STATEMENTS. Catalog names can be used in SELECT, INSERT, UPDATE, DELETE, SELECT FOR UPDATE and positioned UPDATE and DELETE statements. |
SQL_COLLATION_SEQ: Returns the name of the Collation Sequence. | Returns an empty string. The name of the default collation is unknown. |
SQL_COLUMN_ALIAS: Indicates server support for column aliases. | Returns Y. The server supports column aliases. |
SQL_CONCAT_NULL_BEHAVIOR: Indicates how the server handles concatenation of NULL values. | Returns SQL_CB_NON_NULL. Concatenation of a NULL value and a non NULL value will result in a NULL value. |
SQL_CONVERT_BIGINT: Indicates conversion support from the BIGINT type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_BINARY: Indicates conversion support from the BINARY type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_BIT: Indicates conversion support from the BIT type using the CONVERT function. | Returns: SQL_CVT_INTEGER, SQL_CVT_BIT. |
SQL_CONVERT_CHAR: Indicates conversion support from the CHAR type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_DATE: Indicates conversion support from the DATE type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_DECIMAL: Indicates conversion support from the DECIMAL type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_DOUBLE: Indicates conversion support from the DOUBLE type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_FLOAT: Indicates conversion support from the FLOAT type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_FUNCTIONS: Lists the scalar conversion functions supported by the server and driver using the CONVERT function. | Returns: SQL_FN_CVT_CONVERT. |
SQL_CONVERT_INTEGER: Lists the conversion support from the INTEGER type using the CONVERT function. | Returns: SQL_CVT_INTEGER, SQL_CVT_BIT. |
SQL_CONVERT_INTERVAL_DAY_TIME: Indicates conversion support from the INTERVAL_DAY_TIME type using the CONVERT function. | This info_type is not currently supported. |
SQL_CONVERT_INTERVAL_YEAR_MONTH: Indicates conversion support from the INTERVAL_YEAR_MONTH type using the CONVERT function. | This info_type is not currently supported. |
SQL_CONVERT_LONGVARBINARY: Indicates conversion support for the LONG_VARBINARY type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_LONGVARCHAR: Indicates conversion support for the LONGVARCHAR type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_NUMERIC: Indicates conversion support for the NUMERIC type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_REAL: Indicates conversion support for the REAL type using the CONVERT function | Returns 0. The server does not support conversion. |
SQL_CONVERT_SMALLINT: Indicates conversion support for the SMALLINT type using the CONVERT function. | Returns: SQL_CVT_INTEGER, SQL_CVT_BIT. |
SQL_CONVERT_TIME: Indicates conversion support for TIME type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CVT_TIMESTAMP: Indicates conversion support for TIMESTAMP type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_TINYINT: Indicates conversion support for the TINYINT type using the CONVERT function. | Returns: SQL_CVT_INTEGER, SQL_CVT_BIT. |
SQL_CONVERT_VARBINARY: Indicates conversion support for the VARBINARY type using the CONVERT function. | Returns 0. The server does not support conversion. |
SQL_CONVERT_VARCHAR: Indicates conversion support for VARCHAR type using the CONVERT function. | Returns: SQL_CVT_INTEGER, SQL_CVT_BIT. |
SQL_CONVERT_WCHAR: Indicates conversion support for the WCHAR type using the CONVERT function. | This info_type is valid only when using the Unicode driver. Returns 0. The server does not support conversion. |
SQL_CONVERT_WLONGVARCHAR: Indicates conversion support for the WLONGVARCHAR type using the CONVERT function. | This info_type is valid only when using the Unicode driver. Returns 0. The server does not support conversion. |
SQL_CONVERT_WVARCHAR: Indicates conversion support for the WVARCHAR type using the CONVERT function. | This info_type is valid only when using the Unicode driver. Returns 0. The server does not support conversion. |
SQL_CORRELATION_NAME: Indicates server support for correlation names. | Returns SQL_CN_ANY. Correlation names are supported and can be any valid name. |
SQL_CREATE_ASSERTION: Indicates support for the CREATE ASSERTION statement. | Returns 0. The CREATE ASSERTION statement is not supported. |
SQL_CREATE_CHARACTER_SET: Indicates support for CREATE CHARACTER statement. | Returns 0. The CREATE CHARACTER statement is not supported. |
SQL_CREATE_COLLATION: Indicates support for the CREATE COLLATION. | Returns 0. The CREATE COLLATION statement is not supported. |
SQL_CREATE_DOMAIN: Indicates support for the CREATE DOMAIN statement. | Returns 0. The CREATE DOMAIN statement is not supported. |
SQL_CREATE_SCHEMA: Indicates support for the CREATE SCHEMA statement. | Returns: SQL_CS_CREATE_SCHEMA, SQL_CS_AUTHORIZATION. |
SQL_CREATE_TABLE: Indicates support for the CREATE TABLE statement. | Returns: SQL_CT_CREATE_TABLE, SQL_CT_GLOBAL_TEMPORARY, SQL_CT_CONSTRAINT_INITIALLY_DEFERRED, SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE, SQL_CT_CONSTRAINT_DEFERRABLE, SQL_CT_COLUMN_CONSTRAINT, SQL_CT_COLUMN_DEFAULT, SQL_CT_TABLE_CONSTRAINT, SQL_CT_CONSTRAINT_NAME_DEFINITION |
SQL_CREATE_TRANSLATION: Indicates support for the CREATE TRANSLATION statement. | Returns 0. The CREATE TRANSLATION statement is not supported. |
SQL_CREATE_VIEW: Indicates support for the CREATE VIEW statement. | Returns SQL_CV_CREATE_VIEW. |
SQL_CURSOR_COMMIT_BEHAVIOR: Indicates how a COMMIT operation affects the cursor. | Returns SQL_CB_PRESERVE. Cursors are unchanged, and can continue to fetch data. |
SQL_CURSOR_ROLLBACK_BEHAVIOR: Indicates the server behavior after a ROLLBACK operation. | Returns SQL_CB_PRESERVE. Cursors are unchanged, and can continue to fetch data. |
SQL_CURSOR_SENSITIVITY:Indicates how the server synchronizes changes to a result set. | This info_type is not currently supported. |
SQL_DATA_SOURCE_NAME: Returns the server name used during connection. | The value returned is determined by the connection properties. |
SQL_DATA_SOURCE_READ_ONLY: Indicates if the connection is in READ ONLY mode. | The value returned is determined by the connection properties. |
SQL_DATABASE_NAME: Returns the name of the database. | The value returned is determined by the connection properties. |
SQL_DATETIME_LITERALS: Indicates the DATETIME LITERALS supported by the server. | This info_type is not supported. |
SQL_DBMS_NAME: Returns the name of the DBMS system. | Returns the value given by the dbms_name parameter from the odbc.ini file on Linux or the dbms_name field of page 2 of the Advanced Options dialog box when defining a data source in Windows. The default is EnterpriseDB. |
SQL_DBMS_VER: Returns the server version. | Determined by the server. |
SQL_DDL_INDEX: Indicates support for creating and dropping indexes. | Returns: SQL_DI_CREATE_INDEX, SQL_DI_DROP_INDEX. |
SQL_DEFAULT_TXN_ISOLATION: Indicates support for transaction isolation by the server. | Returns TXN_READ_COMMITTED. Non-repeatable or phantom reads are possible; Dirty reads are not. |
SQL_DESCRIBE_PARAMETER: Indicates support for the DESCRIBE INPUT statement. | Returns N. The DESCRIBE INPUT statement is not supported. |
SQL_DM_VER: The version of the Driver Manager. | Determined by driver manager. |
SQL_DRIVER_HDBC: The Driver's connection handle. | Returns an SQLULEN value that contains the driver’s connection handle. |
SQL_DRIVER_HDESC: The Driver descriptor handle. | Returns an SQLULEN value that contains driver’s descriptor handle. |
SQL_DRIVER_HENV: The Driver's environment handle. | Returns an SQLULEN value that contains the driver’s environment handle. |
SQL_DRIVER_HLIB: The Driver handle. | Returns an SQLULEN value that contains the library handle (returned to the ODBC driver manager when the manager loaded the driver). |
SQL_DRIVER_HSTMT: The Driver's statement handle. | Returns an SQLULEN value that contains the driver’s statement handle. |
SQL_DRIVER_NAME: The name of the driver. | Returns EDB-ODBC.DLL |
SQL_DRIVER_ODBC_VER: Identifies the ODBC version that the driver supports. | Returns 03.50 |
SQL_DRIVER_VER: Identifies the driver version. | Returns 9.0.0.6 |
SQL_DROP_ASSERTION: Lists the DROP ASSERTION clauses supported by the server. | Returns 0 |
SQL_DROP_CHARACTER_SET: Lists the DROP CHARACTER clauses supported by the server. | Returns 0 |
SQL_DROP_COLLATION: Lists the DROP COLLATION clauses supported by the server. | Returns 0 |
SQL_DROP_DOMAIN: Lists the DROP DOMAIN clauses supported by the server. | Returns 0 |
SQL_DROP_SCHEMA: Lists the DROP SCHEMA clauses supported by the server. | Returns: SQL_DS_DROP_SCHEMA, SQL_DS_RESTRICT, SQL_DS_CASCADE. |
SQL_DROP_TABLE: Lists the DROP TABLE clauses supported by the server. | Returns: SQL_DT_DROP_TABLE, SQL_DS_RESTRICT, SQL_DS_CASCADE. |
SQL_DROP_TRANSLATION: Lists the DROP TRANSLATION clauses supported by the server. | Returns 0. |
SQL_DROP_VIEW: Lists the DROP VIEW clauses supported by the server. | Returns: SQL_DV_DROP_VIEW, SQL_DS_RESTRICT, SQL_DS_CASCADE. |
SQL_DYNAMIC_CURSOR_ATTRIBUTES1: Describes the first set of dynamic cursor attributes supported by the driver. | Returns 0 |
SQL_DYNAMIC_CURSOR_ATTRIBUTES2: Describes the second set of dynamic cursor attributes supported by the driver. | Returns 0 |
SQL_EXPRESSIONS_IN_ORDERBY: Indicates server support for ORDER BY. | Returns Y. |
SQL_FETCH_DIRECTION: Indicates FETCH order options (deprecated in ODBC 3.0). | Returns: SQL_FD_FETCH_NEXT, SQL_FD_FETCH_FIRS, SQL_FD_FETCH_LAST, SQL_FD_FETCH_PRIOR, SQL_FD_FETCH_ABSOLUTE, SQL_FD_FETCH_RELATIVE, SQL_FD_FETCH_BOOKMARK. |
SQL_FILE_USAGE: Indicates how a single-tier driver treats files on the server. | Returns SQL_FILE_NOT_SUPPORTED. The driver is not a single-tier file. |
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1: Describes the forward-only cursor attributes supported by the driver. | Returns SQL_CA1_NEXT. |
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2: Describes extended attributes for the forward-only cursor designated by SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1. | Returns: SQL_CA2_READ_ONLY_CONCURRENCY, SQL_CA2_CRC_EXACT. |
SQL_GETDATA_EXTENSIONS: Lists supported extensions to SQLGetData. | Returns: SQL_GD_ANY_COLUMN, SQL_GD_ANY_ORDER, SQL_GD_BLOCK, SQL_GD_BOUND. |
SQL_GROUP_BY: Indicates the relationship between a GROUP BY clause and columns in the SELECT list. | Returns SQL_GB_GROUP_BY_EQUALS_SELECT. |
SQL_IDENTIFIER_CASE: Indicates case-sensitivity and case-storage of SQL identifiers. | Returns SQL_IC_LOWER. |
SQL_INDEX_KEYWORDS: Indicates support for the CREATE INDEX statement. | Returns SQL_IK_NONE. |
SQL_INFO_SCHEMA_VIEWS: Lists the views supported in the INFORMATION_SCHEMA. | Returns 0. |
SQL_INTEGRITY Prev. SQL_ODBC_SQL_OPT_IEF: Indicates server support for referential integrity syntax checking. | Returns N. |
SQL_INSERT_STATEMENT: Indicates level of support for the INSERT statement. | Returns: SQL_IS_INSERT_LITERALS, SQL_IS_INSERT_SEARCHED, SQL_IS_SELECT_INTO. |
SQL_KEYSET_CURSOR_ATTRIBUTES1: Describes the first set of keyset cursor attributes supported by the driver. | Returns: SQL_CA1_NEXT, SQL_CA1_ABSOLUTE, SQL_CA1_RELATIVE, SQL_CA1_BOOKMARK, SQL_CA1_LOCK_NO_CHANGE, SQL_CA1_POS_POSITION, SQL_CA1_POS_UPDATE, SQL_CA1_POS_DELETE, SQL_CA1_POS_REFRESH, SQL_CA1_BULK_ADD, SQL_CA1_BULK_UPDATE_BY_BOOKMARK, SQL_CA1_BULK_DELETE_BY_BOOKMARK, SQL_CA1_BULK_FETCH_BY_BOOKMARK. |
SQL_KEYSET_CURSOR_ATTRIBUTES2: Describes the second set of keyset cursor attributes supported by the driver. | Returns: SQL_CA2_READ_ONLY_CONCURRENCY, SQL_CA2_OPT_ROWVER_CONCURRENCY, SQL_CA2_SENSITIVITY_ADDITIONS, SQL_CA2_SENSITIVITY_DELETIONS, SQL_CA2_SENSITIVITY_UPDATES, SQL_CA2_CRC_EXACT. |
SQL_KEYWORDS: Identifies the server specific reserved keywords. | Returns “”. There are no server specific reserved keywords. |
SQL_LIKE_ESCAPE_CLAUSE: Indicates support for an escape character in LIKE predicates. | Returns N. Advanced Server does not support escape characters in LIKE predicates. |
SQL_LOCK_TYPES: Lists supported lock types (deprecated in ODBC 3.0). | Returns SQL_LCK_NO_CHANGE. |
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS: The number of active concurrent statements that the driver can support. | This info_type is currently unsupported. |
SQL_MAX_BINARY_LITERAL_LEN: The maximum length of a binary literal. | Returns 0. The maximum length is unspecified. |
SQL_MAX_CATALOG_NAME_LEN: The maximum length of a catalog name on the server. | Returns 0. The maximum length is unspecified. |
SQL_MAX_QUALIFIER_NAME_LEN: The maximum length of a qualifier. | Returns 0. The maximum length is unspecified. |
SQL_MAX_CHAR_LITERAL_LEN: The maximum number of characters in a character string. | Returns 0. The maximum length is unspecified. |
SQL_MAX_COLUMN_NAME_LEN: The maximum length of a column name. | Returns 64. Column names cannot exceed 64 characters in length. |
SQL_MAX_COLUMNS_IN_GROUP_BY: The maximum number of columns allowed in a GROUP BY clause. | Returns 0. The maximum length is unspecified. |
SQL_MAX_COLUMNS_IN_INDEX: The maximum number of columns allowed in an index. | Returns 0. The maximum length is unspecified. |
SQL_MAX_COLUMNS_IN_ORDER_BY: The maximum number of columns allowed in an ORDER BY clause. | Returns 0. The maximum length is unspecified. |
SQL_MAX_COLUMNS_IN_SELECT: The maximum number of columns allowed in a SELECT list. | Returns 0. The maximum length is unspecified. |
SQL_MAX_COLUMNS_IN_TABLE: The maximum number of columns allowed in a table. | Returns 0. The maximum length is unspecified. |
SQL_MAX_CONCURRENT_ACTIVITIES prev. SQL_MAX_ACTIVE_STATEMENTS: The maximum number of active SQL statements that the driver can support. | Returns 0. The maximum length is unspecified. |
SQL_MAX_CURSOR_NAME_LEN: The maximum length of a cursor name. | Returns 32. A cursor name cannot exceed 32 characters in length. |
SQL_MAX_DRIVER_CONNECTIONS prev. SQL_ACTIVE_CONNECTIONS: The maximum number of active connections the driver can support. | Returns 0. There is no specified limit to the number of connections supported. |
SQL_MAX_IDENTIFIER_LEN: The maximum identifier length allowed by the server. | Returns 64. Identifiers cannot exceed 64 characters in length. |
SQL_MAX_INDEX_SIZE: The maximum number of bytes allowed in the (combined) fields of an index. | Returns 0. The maximum size is unspecified. |
SQL_MAX_OWNER_NAME_LEN Now SQL_MAX_SCHEMA_NAME_LEN: The maximum length of an owner name allowed by the server. | Returns 64. The maximum length of an owner name is 64 characters. |
SQL_MAX_PROCEDURE_NAME_LEN: The maximum length of a procedure name allowed by the server. | Returns 0. The maximum length is unspecified. |
SQL_MAX_QUALIFIER_NAME_LEN Now SQL_MAX_CATALOG_NAME_LEN: The maximum length of a qualifier name allowed by the server. | Returns 0. The maximum length of a qualifier is unspecified. |
SQL_MAX_ROW_SIZE: The maximum length of a row. | Returns 0. The maximum row length is unspecified. |
SQL_MAX_ROW_SIZE_INCLUDES_LONG: Indicates whether the SQL_MAX_ROW_SIZE includes the length of any LONGVARCHAR or LONGVARBINARY columns in the row. | Returns Y. SQL_MAX_ROW_SIZE includes the length of any LONGVARCHAR or LONGVARBINARY columns in the row. |
SQL_MAX_SCHEMA_NAME_LEN: The maximum length of a schema name allowed by the server. | Returns 64. The maximum length of a schema name is 64 characters. |
SQL_MAX_STATEMENT_LEN: The maximum length of a SQL statement. | Returns 0. Maximum statement length is limited by available memory. |
SQL_MAX_TABLE_NAME_LEN: The maximum length of a table name allowed by the server. | Returns 64. The maximum length of a table name is 64 characters. |
SQL_MAX_TABLES_IN_SELECT: The maximum number of tables allowed in the FROM clause of a SELECT statement. | Returns 0. The maximum number of tables allowed is unspecified. |
SQL_MAX_USER_NAME_LEN: The maximum length of the user name allowed by the server. | Returns 0. The maximum length of a user name is unspecified. |
SQL_MULT_RESULT_SETS: Indicates server support for multiple result sets. | Returns Y. Advanced Server supports multiple result sets. |
SQL_MULTIPLE_ACTIVE_TXN: Indicates if the server supports multiple active transactions. | Returns Y. Advanced Server supports multiple active transactions. |
SQL_NEED_LONG_DATA_LEN: Indicates if the server needs the length of a LONG data value before receiving the value. | Returns N. Advanced Server does not need the length of a LONG data value before receiving the value. |
SQL_NON_NULLABLE_COLUMNS: Indicates if the server supports NOT NULL values in columns. | Returns SQL_NNC_NON_NULL. Advanced Server does support NOT NULL values in columns. |
SQL_NULL_COLLATION: Indicates where NULL values are located in a result set. | Returns SQL_NC_HIGH. The location of NULL values in a data set is determined by the ASC and DESC keywords; NULL values are sorted to the high end of the data set. |
SQL_NUMERIC_FUNCTIONS: Lists the numeric functions supported by the driver and the server. | Returns: SQL_FN_NUM_ABS, SQL_FN_NUM_ATAN, SQL_FN_NUM_CEILING, SQL_FN_NUM_COS, SQL_FN_NUM_EXP, SQL_FN_NUM_FLOOR, SQL_FN_NUM_LOG, SQL_FN_NUM_MOD, SQL_FN_NUM_SIGN, SQL_FN_NUM_SIN, SQL_FN_NUM_SQRT, SQL_FN_NUM_TAN, SQL_FN_NUM_RAND, SQL_FN_NUM_POWER, SQL_FN_NUM_ROUND. |
SQL_ODBC_API_CONFORMANCE: Indicates the ODBC 3.0 compliance level | Returns SQL_OAC_LEVEL1. The driver conforms to ODBC Level 1 interface. |
SQL_ODBC_INTERFACE_CONFORMANCE: Indicates the ODBC interface that the driver adheres to. | Returns SQL_OIC_CORE. |
SQL_ODBC_SAG_CLI_CONFORMANCE: Indicates the SQL Access Group compliance level that the driver adheres to. | Returns SQL_OSCC_NOT_COMPLIANT. The driver is not SAG CLI compliant. |
SQL_ODBC_SQL_CONFORMANCE: Indicates the SQL grammar level that the driver conforms to. | Returns SQL_OSC_CORE. The driver conforms to the core grammar level. |
SQL_ODBC_SQL_OPT_IEF Now SQL_INTEGRITY: Indicates server support for referential integrity syntax checking. | Returns N. The server does not support referential integrity syntax checking. |
SQL_ODBC_VER: The ODBC version supported by the driver manager | Returns 03.52.0000. |
SQL_OJ_CAPABILITIES: Identifies the outer joins that are supported by the server. | Returns: SQL_OJ_LEFT, SQL_OJ_RIGHT, SQL_OJ_FULL, SQL_OJ_NESTED, SQL_OJ_NOT_ORDERED, SQL_OJ_INNER, SQL_OJ_ALL_COMPARISON_OPS. |
SQL_OUTER_JOINS: Indicates support for outer joins and the outer join escape sequence. | Returns Y. Outer joins are supported. |
SQL_OWNER_TERM prev. SQL_SCHEMA_TERM: The term used to describe a schema. | Returns schema. |
SQL_ORDER_BY_COLUMNS_IN_SELECT: Indicates if the columns in an ORDER BY clause must be included in the SELECT list. | Returns N. Columns in an ORDER BY clause do not have to be in the SELECT list. |
SQL_OWNER_USAGE prev. SQL_SCHEMA_USAGE: Returns a string that indicates which statements support schema qualifiers. | Returns: SQL_OU_DML_STATEMENTS, SQL_OU_TABLE_DEFINITION, SQL_OU_INDEX_DEFINITION, SQL_OU_PRIVILEGE_DEFINITION. |
SQL_PARAM_ARRAY_ROW_COUNTS: Indicates if the server will return a single row count or separate row counts for each element in an array when executing a parameterized statement with at least one parameter bound to the array. | Returns SQL_PARC_BATCH, if separate row counts are available for each element in an array. SQL_PARC_NO_BATCH if a single, cumulative row count is available for the entire array. |
SQL_PARAM_ARRAY_SELECTS: Indicates if the server will return one result set or a separate result set for each element in an array (or if the driver does not allow this feature) when executing a parameterized statement with at least one parameter bound to the array. | Returns SQL_PAS_BATCH. One data set is available for each element in an array. |
SQL_POS_OPERATION: Lists the options supported by SQLSetPos(). | Returns: SQL_POS_POSITION, SQL_POS_REFRESH, SQL_POS_UPDATE, SQL_POS_DELETE, SQL_POS_ADD. |
SQL_POSITIONED_STATEMENTS: Lists the supported positioned SQL statements. | Returns: SQL_PS_POSITIONED_DELETE, SQL_PS_POSITIONED_UPDATE, SQL_PS_SELECT_FOR_UPDATE. |
SQL_PROCEDURE_TERM: The term used to describe a procedure. | Returns procedure. |
SQL_PROCEDURES: Indicates if the server and the driver support SQL procedures and procedure invocation syntax. | Returns Y. The server and driver support procedures and procedure invocation syntax. |
SQL_QUALIFIER_LOCATION prev. SQL_CATALOG_LOCATION: Indicates the position of the schema name in a qualified table name. | Returns SQL_CL_START. The catalog portion of a qualified table name is at the beginning of the name. |
SQL_QUALIFIER_NAME prev. SQL_CATALOG_NAME: Indicates server support for catalog names. | Returns Y. The server supports catalog names. |
SQL_QUALIFIER_NAME_SEPARATOR prev. SQL_CATALOG_NAME_SEPARATOR: Character separating the qualifier name from the adjacent name element. | Returns '.'. The server expects a '.' character between the qualifier and the table name. |
SQL_QUALIFIER_TERM prev. SQL_CATALOG_TERM: The term used to describe a qualifier. | Returns catalog. |
SQL_QUALIFIER_USAGE prev. SQL_CATALOG_USAGE: Indicates the SQL statements that may refer to qualifiers. | Returns SQL_CU_DML_STATEMENTS. Catalog names can be used in SELECT, INSERT, UPDATE, DELETE, SELECT FOR UPDATE and positioned UPDATE and DELETE statements. |
SQL_QUALIFIER_USAGE Now SQL_CATALOG_USAGE: Identifies DML statements that support qualifier names. | Returns SQL_CU_DML_STATEMENTS. Qualifiers can be used in all DML statements (SELECT, INSERT, UPDATE, DELETE, SELECT FOR UPDATE). |
SQL_QUOTED_IDENTIFIER_CASE: Indicates case sensitivity of quoted identifiers. | Returns SQL_IC_SENSITIVE. Quoted identifiers are case sensitive. |
SQL_QUALIFIER_NAME_SEPARATOR Now SQL CATALOG_NAME_SEPARATOR: The character that separates the name qualifier from the name element. | Returns . The '.' character is used as a separator in qualified names. |
SQL_QUALIFIER_TERM: The term used to describe a qualifier. | Returns catalog |
SQL_QUALIFIER_LOCATION: The position of the qualifier in a qualified table name. | Returns SQL_CL_START. The qualifier precedes the table name in a qualified table name. |
SQL_ROW_UPDATES: Indicates if keyset-driven or mixed cursors maintain row versions or values. | Returns Y. Cursors maintain values for all fetched rows and can detect updates to the row values. |
SQL_SCHEMA_TERM: The term used to describe a schema. | Returns schema |
SQL_SCHEMA_USAGE: Indicates the SQL statements that may refer to schemas. | Returns: SQL_OU_DML_STATEMENTS, SQL_OU_TABLE_DEFINITION, SQL_OU_INDEX_DEFINITION, SQL_OU_PRIVILEGE_DEFINITION. |
SQL_SCROLL_CONCURRENCY: Indicates the cursor concurrency control options supported by the server. | Returns: SQL_SCCO_READ_ONLY, SQL_SCCO_OPT_ROWVER. |
SQL_SCROLL_OPTIONS: Indicates the cursor scroll options supported by the server. | Returns: SQL_SO_FORWARD_ONLY, SQL_SO_KEYSET_DRIVEN, SQL_SO_STATIC. |
SQL_SEARCH_PATTERN_ESCAPE: The escape character that allows use of the wildcard characters % and _ in search patterns. | Returns . The '' character is used as an escape character for the '%' and '_' characters in search patterns. |
SQL_SERVER_NAME: Indicates the name of the host. | The returned value is determined by connection properties. |
SQL_SPECIAL_CHARACTERS: Indicates any special characters allowed in identifier names. | Returns _. The underscore character is allowed in identifier names. |
SQL_SQL_CONFORMANCE: Indicates the level of SQL-92 compliance. | Returns SQL_SC_SQL92_ENTRY. The driver is SQL92 Entry level compliant. |
SQL_SQL92_DATETIME_FUNCTIONS: Lists the datetime functions supported by the server. | Returns: SQL_SDF_CURRENT_DATE, SQL_SDF_CURRENT_TIME, SQL_SDF_CURRENT_TIMESTAMP. |
SQL_SQL92_FOREIGN_KEY_DELETE_RULE: Indicates the server-enforced rules for using a foreign key in a DELETE statement. | Returns: SQL_SFKD_CASCADE, SQL_SFKD_NO_ACTION, SQL_SFKD_SET_DEFAULT, SQL_SFKD_SET_NULL. |
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE: Indicates the server-enforced rules for using a foreign key in an UPDATE statement. | Returns: SQL_SFKU_CASCADE, SQL_SFKU_NO_ACTION, SQL_SFKU_SET_DEFAULT, SQL_SFKU_SET_NULL. |
SQL_SQL92_GRANT: Indicates the supported GRANT statement clauses. | Returns: SQL_SG_DELETE_TABLE, SQL_SG_INSERT_TABLE, SQL_SG_REFERENCES_TABLE, SQL_SG_SELECT_TABLE, SQL_SG_UPDATE_TABLE. |
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS: Lists the scalar numeric functions supported by the server and driver. | Returns: SQL_SNVF_BIT_LENGTH, SQL_SNVF_CHAR_LENGTH, SQL_SNVF_CHARACTER_LENGTH, SQL_SNVF_EXTRACT, SQL_SNVF_OCTET_LENGTH, SQL_SNVF_POSITION. |
SQL_SQL92_PREDICATES, Identifies the predicates of a SELECT statement supported by the server. | Returns: SQL_SP_EXISTS, SQL_SP_ISNOTNULL, SQL_SP_ISNULL, SQL_SP_OVERLAPS, SQL_SP_LIKE, SQL_SP_IN, SQL_SP_BETWEEN, SQL_SP_COMPARISON, SQL_SP_QUANTIFIED_COMPARISON. |
SQL_SQL92_RELATIONAL_JOIN_OPERATORS: Identifies the relational join operators supported by the server. | Returns: SQL_SRJO_CROSS_JOIN, SQL_SRJO_EXCEPT_JOIN, SQL_SRJO_FULL_OUTER_JOIN, SQL_SRJO_INNER_JOIN, SQL_SRJO_INTERSECT_JOIN, SQL_SRJO_LEFT_OUTER_JOIN, SQL_SRJO_NATURAL_JOIN, SQL_SRJO_RIGHT_OUTER_JOIN, SQL_SRJO_UNION_JOIN. |
SQL_SQL92_REVOKE: Identifies the clauses in a REVOKE statement that are supported by the server. | Returns: SQL_SR_DELETE_TABLE, SQL_SR_INSERT_TABLE, SQL_SR_REFERENCES_TABLE, SQL_SR_SELECT_TABLE, SQL_SR_UPDATE_TABLE. |
SQL_SQL92_ROW_VALUE_CONSTRUCTOR: Indicates the row value constructor expressions in a SELECT statement that are supported by the server. | Returns: SQL_SRVC_VALUE_EXPRESSION, SQL_SRVC_NULL. |
SQL_SQL92_STRING_FUNCTIONS: Lists the string scalar functions supported by the server and driver. | Returns: SQL_SSF_CONVERT, SQL_SSF_LOWER, SQL_SSF_UPPER, SQL_SSF_SUBSTRING, SQL_SSF_TRANSLATE, SQL_SSF_TRIM_BOTH, SQL_SSF_TRIM_LEADING, SQL_SSF_TRIM_TRAILING. |
SQL_SQL92_VALUE_EXPRESSIONS: Indicates the value expressions supported by the server. | Returns: SQL_SVE_CASE, SQL_SVE_CAST, SQL_SVE_COALESCE, SQL_SVE_NULLIF. |
SQL_STANDARD_CLI_CONFORMANCE: Indicates the CLI standard the driver conforms to. | This info_type is currently unsupported. |
SQL_STATIC_CURSOR_ATTRIBUTES1: Describes the first set of static cursor attributes supported by the driver. | Returns: SQL_CA1_NEXT, SQL_CA1_ABSOLUTE, SQL_CA1_RELATIVE, SQL_CA1_BOOKMARK, SQL_CA1_LOCK_NO_CHANGE, SQL_CA1_POS_POSITION, SQL_CA1_POS_UPDATE, SQL_CA1_POS_DELETE, SQL_CA1_POS_REFRESH, SQL_CA1_BULK_ADD, SQL_CA1_BULK_UPDATE_BY_BOOKMARK, SQL_CA1_BULK_DELETE_BY_BOOKMARK, SQL_CA1_BULK_FETCH_BY_BOOKMARK. |
SQL_STATIC_CURSOR_ATTRIBUTES2: Describes the second set of static cursor attributes supported by the driver. | Returns: SQL_CA2_READ_ONLY_CONCURRENCY, SQL_CA2_OPT_ROWVER_CONCURRENCY, SQL_CA2_SENSITIVITY_ADDITIONS, SQL_CA2_SENSITIVITY_DELETIONS, SQL_CA2_SENSITIVITY_UPDATES, SQL_CA2_CRC_EXACT. |
SQL_STATIC_SENSITIVITY: Indicates whether changes made to a static cursor by SQLSetPos() or UPDATE or DELETE statements are detected by the application. | Returns: SQL_SS_ADDITIONS, SQL_SS_DELETIONS, SQL_SS_UPDATES. |
SQL_STRING_FUNCTIONS: Lists the scalar string functions supported by the server and driver. | Returns: SQL_FN_STR_CONCAT, SQL_FN_STR_LTRIM, SQL_FN_STR_LENGTH, SQL_FN_STR_LOCATE, SQL_FN_STR_LCASE, SQL_FN_STR_RTRIM, SQL_FN_STR_SUBSTRING, SQL_FN_STR_UCASE. |
SQL_SUBQUERIES: Identifies the subquery predicates to a SELECT statement supported by the server. | Returns: SQL_SQ_COMPARISON, SQL_SQ_EXISTS, SQL_SQ_IN, SQL_SQ_QUANTIFIED. |
SQL_SYSTEM_FUNCTIONS: Lists the scalar system functions supported by the server and driver. | Returns 0. |
SQL_TABLE_TERM: The term used to describe a table. | Returns table. |
SQL_TIMEDATE_ADD_INTERVALS: Indicates the timestamp intervals supported by the server for the TIMESTAMPADD scalar function. | Returns 0. |
SQL_TIMEDATE_DIFF_INTERVALS: Indicates the timestamp intervals supported by the server for the TIMESTAMPDIFF scalar function. | Returns 0 |
SQL_TIMEDATE_FUNCTIONS: Indicates the date and time functions supported by the server. | Returns: SQL_FN_TD_NOW, SQL_FN_TD_CURDATE, SQL_FN_TD_CURTIME. |
SQL_TXN_CAPABLE: Identifies the transaction support offered by the server and driver. | Returns SQL_TC_ALL. Transactions can contain both DML and DDL statements. |
SQL_TXN_ISOLATION_OPTION: Indicates the transaction isolation level supported by the server. | Returns: SQL_TXN_READ_COMMITTED, SQL_TXN_SERIALIZABLE. |
SQL_UNION: Indicates server support for the UNION clause. | Returns: SQL_U_UNION, SQL_U_UNION_ALL. |
SQL_USER_NAME: Identifies the name of the user connected to a database; may be different than the login name. | This value is determined by the connection properties. |
SQL_XOPEN_CLI_YEAR: The publication year of the X/Open specification that the driver manager complies with. | This info_type is currently unsupported. |
Connection Attributes
You can use the ODBC SQLGetConnectAttr()
and SQLSetConnectAttr()
functions to retrieve or set the value of a connection attribute.
SQLGetConnectAttr()
The SQLGetConnectAttr()
function returns the current value of a connection attribute. The signature is:
conn_handle
The connection handle.attribute
identifies the attribute whose value you wish to retrieve.value_pointer
A pointer to the location in memory that will receive theattribute
value.buffer_length
Ifattribute
is defined by ODBC andvalue_pointer
points to a character string or binary buffer,buffer_length
is the length ofvalue_pointer
. Ifvalue_pointer
points to a fixed-size value (such as an integer),buffer_length
is ignored.If EDB-ODBC defines the attribute,
SQLGetConnectAttr()
sets thebuffer_length
parameter.buffer_length
can be:Value type Meaning Character string The length of the character string Binary buffer The result of SQL_LEN_BINARY_ATTR(length) Fixed length data type SQL_IS_INTEGER or SQL_IS_UINTEGER Any other type SQL_IS_POINTER string_length_pointer
A pointer to aSQLINTEGER
that receives the number of bytes available to return invalue_pointer
. Ifvalue_pointer
isNULL
,string_length_pointer
is not returned.
This function returns SQL_SUCCESS
, SQL_SUCCESS_WITH_INFO
, SQL_NO_DATA
, SQL_ERROR
or SQL_INVALID_HANDLE
.
The following table lists the connection attributes supported by EDB-ODBC.
Attribute | Supported? | Notes |
---|---|---|
SQL_ATTR_ACCESS_MODE | NO | SQL_MODE_READ_WRITE |
SQL_ATTR_ASYNC_ENABLE | NO | SQL_ASYNC_ENABLE_OFF |
SQL_ATTR_AUTO_IPD | NO | |
SQL_ATTR_AUTOCOMMIT | YES | SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_ON, SQL_AUTOCOMMIT_OFF |
SQL_ATTR_CONNECTION_TIMEOUT | NO | |
SQL_ATTR_CURRENT_CATALOG | NO | |
SQL_ATTR_DISCONNECT_BEHAVIOR | NO | |
SQL_ATTR_ENLIST_IN_DTC | YES | For win32 and with conditional compilation |
SQL_ATTR_ENLIST_IN_XA | NO | |
SQL_ATTR_LOGIN_TIMEOUT | NO | SQL_LOGIN_TIMEOUT |
SQL_ATTR_ODBC_CURSORS | NO | |
SQL_ATTR_PACKET_SIZE | NO | |
SQL_ATTR_QUIET_MODE | NO | |
SQL_ATTR_TRACE | NO | |
SQL_ATTR_TRACEFILE | NO | |
SQL_ATTR_TRANSLATE_LIB | NO | |
SQL_ATTR_TRANSLATE_OPTION | NO | |
SQL_ATTR_TXN_ISOLATION | YES | SQL_TXN_ISOLATION, SQL_DEFAULT_TXN_ISOLATION |
SQLSetConnectAttr()
You can use the ODBC SQLSetConnectAttr()
function to set the values of connection attributes. The signature of the function is:
conn_handle
The connection handle
attribute
attribute
identifies the attribute whose value you wish to set
value_pointer
A pointer to the value that the attribute
will assume.
string_length
If attribute
is defined by ODBC and value_pointer
points to a binary buffer or character string, string_length
is the length of value_pointer
. If value_pointer
points to a fixed-length value (such as an integer), string_length
is ignored.
If EDB-ODBC defines the attribute, the application sets the string_length
parameter. Possible string_length
values are:
Value Type | Meaning |
---|---|
Character string | The length of the character string or SQL_NTS |
Binary buffer | The result of SQL_LEN_BINARY_ATTR(length) |
Fixed length data type | SQL_IS_INTEGER or SQL_IS_UINTEGER |
Any other type | SQL_IS_POINTER |
SQLSetConnectAttr()
returns SQL_SUCCESS
, SQL_SUCCESS_WITH_INFO
, SQL_ERROR
, SQL_STILL_EXECUTING
or SQL_INVALID_HANDLE
.
You can call SQLSetConnectAttr()
any time after the connection handle is allocated, until the time that the connection is closed with a call to SQLFreeHandle()
. All attributes set by the call persist until the call to SQLFreeHandle()
.
Connection attributes have a specific time frame in which they can be set. Some attributes must be set before the connection is established, while others can only be set after a connection is established.
The following table lists the connection attributes and the time frame in which they can be set:
Attribute | Set Before or After establishing a connection? |
---|---|
SQL_ATTR_ACCESS_MODE | Before or After |
SQL_ATTR_ASYNC_ENABLE | Before or After |
SQL_ATTR_AUTO_IPD | Before or After |
SQL_ATTR_AUTOCOMMIT | Before or After |
SQL_ATTR_CONNECTION_TIMEOUT | Before or After |
SQL_ATTR_CURRENT_CATALOG | Before or After |
SQL_ATTR_ENLIST_IN_DTC | After |
SQL_ATTR_ENLIST_IN_XA | After |
SQL_ATTR_LOGIN_TIMEOUT | Before |
SQL_ATTR_ODBC_CURSORS | Before |
SQL_ATTR_PACKET_SIZE | Before |
SQL_ATTR_QUIET_MODE | Before or After |
SQL_ATTR_TRACE | Before or After |
SQL_ATTR_TRACEFILE | Before or After |
SQL_ATTR_TRANSLATE_LIB | After |
SQL_ATTR_TRANSLATE_OPTION | After |
SQL_ATTR_TXN_ISOLATION | Before or After |
Environment Attributes
You can use the ODBC SQLGetEnvAttr()
and SQLSetEnvAttr()
functions to retrieve or set the value of an environment attribute.
SQLGetEnvAttr()
Use the SQLGetEnvAttr()
function to find the current value of environment attributes on your system. The signature of the function is:
env_handle
The environment handle.
attribute
attribute
identifies the attribute whose value you wish to retrieve.
value_pointer
A pointer to the location in memory that will receive the attribute
value.
buffer_length
If the attribute is a character string, buffer_length
is the length of value_ptr
. If the value of the attribute is not a character string, buffer_length
is unused.
string_length_pointer
A pointer to a SQLINTEGER
that receives the number of bytes available to return in value_pointer
. If value_pointer
is NULL, string_length_pointer
is not returned.
This function returns SQL_SUCCESS
, SQL_SUCCESS_WITH_INFO
, SQL_NO_DATA
, SQL_ERROR
or SQL_INVALID_HANDLE
.
The following table lists the environment attributes supported by EDB-ODBC.
Attribute | Supported? | Restrictions? |
---|---|---|
SQL_ATTR_CONNECTION_POOLING | SQL_CP_ONE_PER_DRIVER or SQL_CP_OFF | Determined by connection properties |
SQL_ATTR_ODBC_VERSION | (SQL_OV_ODBC3), (SQL_OV_ODBC2) | NONE |
SQL_ATTR_OUTPUT_NTS | SQL_SUCCESS | NONE |
SQLSetEnvAttr()
You can use the SQLSetEnvAttr()
function to set the values of environment attributes. The signature of the function is:
env_handle
The environment handle.attribute
identifies the attribute whose value you wish to set.value_pointer
A pointer to the value assigned to theattribute
.- The value will be a
NULL
terminated character string or a 32 bit integer value depending on the specifiedattribute
. string_length
Ifvalue_pointer
is a pointer to a binary buffer or character string,string\_length
is the length ofvalue_pointer
. If the value being assigned to the attribute is a character,string_length
is the length of that character string. Ifvalue_pointer
is NULL,string_length
is not returned. If value_pointer is an integer,string_length
is ignored.
SQLSetEnvAttr()
returns SQL_SUCCESS
, SQL_INVALID_HANDLE
, SQL_ERROR
or SQL_SUCCESS_WITH_INFO
. The application must call SQLSetEnvAttr()
before allocating a connection handle; all values applied to environment attributes will persist until SQLFreeHandle()
is called for the connection. ODBC version 3.x allows you to allocate multiple environment handles simultaneously.
The following table lists the environment attributes you can set with SQLSetAttr()
.
Attribute | Value_pointer type | Restrictions? |
---|---|---|
SQL_ATTR_ODBC_VERSION | 32 bit Integer | Set this attribute before the application calls any function that includes an SQLHENV argument. |
SQL_ATTR_OUTPUT_NTS | 32-bit Integer | Defaults to SQL_TRUE. Calls that set this attribute to SQL_FALSE return SQL_ERROR/SQLSTATEHYC00 (feature not implemented). |
Statement Attributes
You can use the ODBC SQLGetStmtAttr()
and SQLSetStmtAttr()
functions to retrieve and set the value of a statement attribute.
SQLGetStmtAttr()
The SQLGetStmtAttr()
function returns the current value of statement attribute. The signature is:
stmt_handle
The statement handleattribute
is the attribute valuevalue_pointer
A pointer to the location in memory that will receive theattribute
value.buffer_length
If the attribute is defined by ODBC,buffer_length
is the length ofvalue_pointer
(ifvalue_pointer
points to a character string or binary buffer). Ifvalue_pointer
points to an integer,buffer_length
is ignored.If EDB-ODBC defines the attribute, the application sets the
buffer_length
parameter.buffer_length
can be:Value Type Meaning Character string The length of the character string Binary buffer The result of SQL_LEN_BINARY_ATTR(length) Fixed length data type SQL_IS_INTEGER or SQL_IS_UINTEGER Any other type SQL_IS_POINTER string_length_pointer
A pointer to anSQLINTEGER
that receives the number of bytes required to hold the requested value. Ifvalue_pointer
is NULL,string_length_pointer
is not returned.This function returns
SQL_SUCCESS
,SQL_SUCCESS_WITH_INFO
,SQL_ERROR
orSQL_INVALID_HANDLE
.Attribute Supported? Restrictions? SQL_ATTR_APP_PARAM_DESC YES SQL_ATTR_APP_ROW_DESC YES SQL_ATTR_ASYNC_ENABLE NO SQL_ATTR_CONCURRENCY YES SQL_CONCUR_READ_ONLY SQL_ATTR_CURSOR_SCROLLABLE YES SQL_ATTR_CURSOR_TYPE YES SQL_CURSOR_FORWARD_ONLY SQL_ATTR_CURSOR_SENSITIVITY YES SQL_INSENSITIVE SQL_ATTR_ENABLE_AUTO_IPD NO SQL_ATTR_FETCH_BOOKMARK_PTR YES SQL_ATTR_IMP_PARAM_DESC YES SQL_ATTR_IMP_ROW_DESC YES SQL_ATTR_KEYSET_SIZE NO SQL_ATTR_MAX_LENGTH NO SQL_ATTR_MAX_ROWS NO SQL_ATTR_METADATA_ID YES SQL_ATTR_NOSCAN NO SQL_ATTR_PARAM_BIND_OFFSET_PTR YES ODBC V2.0 SQL_ATTR_PARAM_BIND_TYPE YES SQL_ATTR_PARAM_OPERATION_PTR YES SQL_ATTR_PARAM_STATUS_PTR YES SQL_ATTR_PARAMS_PROCESSED_PTR YES SQL_ATTR_PARAMSET_SIZE YES SQL_ATTR_QUERY_TIMEOUT NO SQL_ATTR_RETRIEVE_DATA NO SQL_ATTR_ROW_BIND_OFFSET_PTR YES SQL_ATTR_ROW_BIND_TYPE NO SQL_ATTR_ROW_NUMBER YES SQL_ATTR_ROW_OPERATION_PTR YES SQL_ATTR_ROW_STATUS_PTR YES SQL_ATTR_ROWS_FETCHED_PTR YES SQL_ATTR_ROW_ARRAY_SIZE YES SQL_ATTR_SIMULATE_CURSOR NO SQL_ATTR_USE_BOOKMARKS YES SQL_ROWSET_SIZE YES
SQLSetStmtAttr()
You can use the SQLSetStmtAttr()
function to set the values of environment attributes. The signature is:
stmt_handle
is the environment handle.attribute
identifies the statement attribute whose value you wish to set.value_pointer
is a pointer to the location in memory that holds the value that will be assigned to the attribute.value_pointer
can be a pointer to:A null-terminated character string
A binary buffer
A value defined by the driver
A value of the type
SQLLEN
,SQLULEN
orSQLUSMALLINT
Value-pointer can also optionally hold one of the following values:
An ODBC descriptor handle
A
SQLUINTEGER
valueA
SQLULEN
valueA signed INTEGER (if attribute is a driver-specific value)
string_length
Ifattribute
is defined by ODBC andvalue_pointer
points to a binary buffer or character string,string_length
is the length ofvalue_pointer
. Ifvalue_pointer
points to an integer,string_length
is ignored. If EDB-ODBC defines the attribute, the application sets thestring_length
parameter. Possiblestring_length
values are:
Value Type | Meaning |
---|---|
Character string | The length of the character string or SQL_NTS |
Binary buffer | The result of SQL_LEN_BINARY_ATTR(length) |
Fixed length data type | SQL_IS_INTEGER or SQL_IS_UINTEGER |
Any other type | SQL_IS_POINTER |
Error Handling
Diagnostic information for the ODBC functions mentioned in this guide can be retrieved via the ODBC SQLGetDiagRec()
function.
SQLGetDiagRec()
The SQLGetDiagRec()
function returns status and error information from a diagnostic record written by the ODBC functions that retrieve or set attribute values. The signature is:
handle_type
The handle type of thehandle
argument.handle_type
must be one of the following:SQL_HANDLE_ENV
specifies an environment handle.SQL_HANDLE_STMT
specifies a statement handle.SQL_HANDLE_DBC
specifies a connection handle.SQL_HANDLE_DESC
specifies a descriptor handle.
handle
The handle associated with the attribute error message.record_number
The status record that the application is seeking information from (must be greater than or equal to 1).SQLState_pointer
Pointer to a memory buffer that receives theSQLState
error code from the record.native_error_pointer
Pointer to a buffer that receives the native error message for the data source (contained in theSQL_DIAG_NATIVE
field).error_text_pointer
Pointer to a memory buffer that receives the error text (contained in theSQL_DIAG_MESSAGE_TEXT
field)buffer_length
The length of theerror_text
buffer.text_length_pointer
Pointer to the buffer that receives the size (in characters) of theerror_text_pointer
field. If the number of characters in theerror_text_pointer
parameter exceeds the number available (inbuffer_length
),error_text_pointer
will be truncated.
SQLGetDiagRec()
returns SQL_SUCCESS
, SQL_ERROR
, SQL_INVALID_HANDLE
, SQL_SUCCESS_WITH_DATA
or SQL_NO_DATA
.
Supported ODBC API Functions
The following table lists the ODBC API functions; the right column specifies Yes
if the API is supported by the EDB-ODBC driver. Use the ODBC SQLGetFunctions()
function (specifying a function ID of SQL_API_ODBC3_ALL_FUNCTIONS
) to return a current version of this list.
ODBC API Function Name | Supported by EDB-ODBC? |
---|---|
SQLAllocConnect() | Yes |
SQLAllocEnv() | Yes |
SQLAllocStmt() | Yes |
SQLBindCol() | Yes |
SQLCancel() | Yes |
SQLColAttributes() | Yes |
SQLConnect() | Yes |
SQLDescribeCol() | Yes |
SQLDisconnect() | Yes |
SQLError() | Yes |
SQLExecDirect() | Yes |
SQLExecute() | Yes |
SQLFetch() | Yes |
SQLFreeConnect() | Yes |
SQLFreeEnv() | Yes |
SQLFreeStmt() | Yes |
SQLGetCursorName() | Yes |
SQLNumResultCols() | Yes |
SQLPrepare() | Yes |
SQLRowCount() | Yes |
SQLSetCursorName() | Yes |
SQLSetParam() | Yes |
SQLTransact() | Yes |
SQLColumns() | Yes |
SQLDriverConnect() | Yes |
SQLGetConnectOption() | Yes |
SQLGetData() | Yes |
SQLGetFunctions() | Yes |
SQLGetInfo() | Yes |
SQLGetStmtOption() | Yes |
SQLGetTypeInfo() | Yes |
SQLParamData() | Yes |
SQLPutData() | Yes |
SQLSetConnectOption() | Yes |
SQLSetStmtOption() | Yes |
SQLSpecialColumns() | Yes |
SQLStatistics() | Yes |
SQLTables() | Yes |
SQLBrowseConnect() | No |
SQLColumnPrivileges() | No |
SQLDataSources() | Yes |
SQLDescribeParam() | No |
SQLExtendedFetch() | Yes |
SQLForeignKeys() | Yes |
SQLMoreResults() | Yes |
SQLNativeSQL() | Yes |
SQLNumParams() | Yes |
SQLParamOptions() | Yes |
SQLPrimaryKeys() | Yes |
SQLProcedureColumns() | Yes |
SQLProcedures() | Yes |
SQLSetPos() | Yes |
SQLSetScrollOptions() | No |
SQLTablePrivileges() | Yes |
SQLDrivers() | Yes |
SQLBindParameter() | Yes |
SQLAllocHandle() | Yes |
SQLBindParam() | Yes |
SQLCloseCursor() | Yes |
SQLColAttribute() | Yes |
SQLCopyDesc() | Yes |
SQLendTran() | Yes |
SQLFetchScroll() | Yes |
SQLFreeHandle() | Yes |
SQLGetConnectAttr() | Yes |
SQLGetDescField() | Yes |
SQLGetDescRec() | Yes |
SQLGetDiagField() | Yes |
SQLGetDiagRec() | Yes |
SQLGetEnvAttr() | Yes |
SQLGetStmtAttr() | Yes |
SQLSetConnectAttr() | Yes |
SQLSetDescField() | Yes |
SQLSetDescRec() | No |
SQLSetEnvAttr() | Yes |
SQLSetStmtAttr() | Yes |
SQLBulkOperations() | Yes |
Supported Data Types
EDB-ODBC supports the following ODBC data types:
ODBC Data Type | Corresponding Advanced Server Data Type |
---|---|
SQL_BIGINT | PG_TYPE_INT8 |
SQL_BINARY | PG_TYPE_BYTEA |
SQL_BIT | PG_TYPE_BOOL or PG_TYPE_CHAR |
SQL_CHAR | PG_TYPE_BPCHAR |
SQL_TYPE_DATE | PG_TYPE_DATE |
SQL_DECIMAL | PG_TYPE_NUMERIC |
SQL_DOUBLE | PG_TYPE_FLOAT8 |
SQL_FLOAT | PG_TYPE_FLOAT8 |
SQL_INTEGER | PG_TYPE_INT4 |
SQL_LONGVARBINARY | PG_TYPE_BYTEA |
SQL_LONGVARCHAR | PG_TYPE_VARCHAR or PG_TYPE_TEXT |
SQL_NUMERIC | PG_TYPE_NUMERIC |
SQL_NUMERIC | PG_TYPE_NUMERIC |
SQL_REAL | PG_TYPE_FLOAT4 |
SQL_SMALLINT | PG_TYPE_INT2 |
SQL_TYPE_TIME | PG_TYPE_TIME |
SQL_TYPE_TIMESTAMP | PG_TYPE_DATETIME |
SQL_TINYINT | PG_TYPE_INT2 |
SQL_VARBINARY | PG_TYPE_BYTEA |
SQL_VARCHAR | PG_TYPE_VARCHAR |
prerequisite for ADO users
You must execute Command.Prepared = True
before executing Command.Execute
.
Thread Safety
EDB-ODBC is thread safe.