Driver functionality v16
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 EDB Postgres 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 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 EDB Postgres 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 to hold the retrieved value.If the
info_type
argument isSQL_DRIVER_HDESC
orSQL_DRIVER_HSTMT
, theinfo_pointer
argument is bothInput
andOutput
.buffer_len
— 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 used only if the requested value is returned in the form of a character string.string_length_pointer
— 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 isn't provided by SQLGetInfo()
.
SQLGetInfo()
writes information in one of the following formats:
SQLUINTEGER
bitmaskSQLUINTEGER
flagSQLUINTEGER
binary valueSQLUSMALLINT
valueNULL
-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 EDB Postgres Advanced Server connection.
SQL info_type argument and description** | EDB_ODBC/EDB Postgres 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 might 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 might 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's no specified limit to the number of connections allowed. |
SQL_ACTIVE_ENVIRONMENTS: The number of active environments EDB-ODBC can support. | Returns 0 . There's 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's 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 aren't 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 isn't 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 can 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 . Concatenating a NULL value and a non-NULL value results in a NULL value. |
SQL_CONVERT_BIGINT: Indicates conversion support from the BIGINT type using the CONVERT function. | Returns 0 . The server doesn't support conversion. |
SQL_CONVERT_BINARY: Indicates conversion support from the BINARY type using the CONVERT function. | Returns 0 . The server doesn't 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 doesn't support conversion. |
SQL_CONVERT_DATE: Indicates conversion support from the DATE type using the CONVERT function. | Returns 0 . The server doesn't support conversion. |
SQL_CONVERT_DECIMAL: Indicates conversion support from the DECIMAL type using the CONVERT function. | Returns 0 . The server doesn't support conversion. |
SQL_CONVERT_DOUBLE: Indicates conversion support from the DOUBLE type using the CONVERT function. | Returns 0 . The server doesn't support conversion. |
SQL_CONVERT_FLOAT: Indicates conversion support from the FLOAT type using the CONVERT function. | Returns 0 . The server doesn't 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 isn't currently supported. |
SQL_CONVERT_INTERVAL_YEAR_MONTH: Indicates conversion support from the INTERVAL_YEAR_MONTH type using the CONVERT function. | This info_type isn't currently supported. |
SQL_CONVERT_LONGVARBINARY: Indicates conversion support for the LONG_VARBINARY type using the CONVERT function. | Returns 0 . The server doesn't support conversion. |
SQL_CONVERT_LONGVARCHAR: Indicates conversion support for the LONGVARCHAR type using the CONVERT function. | Returns 0 . The server doesn't support conversion. |
SQL_CONVERT_NUMERIC: Indicates conversion support for the NUMERIC type using the CONVERT function. | Returns 0. The server doesn't support conversion. |
SQL_CONVERT_REAL: Indicates conversion support for the REAL type using the CONVERT function | Returns 0 . The server doesn't 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 doesn't support conversion. |
SQL_CVT_TIMESTAMP: Indicates conversion support for TIMESTAMP type using the CONVERT function. | Returns 0 . The server doesn't 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 doesn't 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 doesn't 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 doesn't 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. Returns0 . The server doesn't 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 isn't supported. |
SQL_CREATE_CHARACTER_SET: Indicates support for the CREATE CHARACTER statement. | Returns 0 . The CREATE CHARACTER statement isn't supported. |
SQL_CREATE_COLLATION: Indicates support for the CREATE COLLATION statement. | Returns 0 . The CREATE COLLATION statement isn't supported. |
SQL_CREATE_DOMAIN: Indicates support for the CREATE DOMAIN statement. | Returns 0 . The CREATE DOMAIN statement isn't 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 isn't 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 isn't 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 . Nonrepeatable or phantom reads are possible. Dirty reads aren't. |
SQL_DESCRIBE_PARAMETER: Indicates support for the DESCRIBE INPUT statement. | Returns N . The DESCRIBE INPUT statement isn't 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 isn't 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 . EDB Postgres Advanced Server doesn't 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 can't 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 can't 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 can't 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 . EDB Postgres Advanced Server supports multiple result sets. |
SQL_MULTIPLE_ACTIVE_TXN: Indicates if the server supports multiple active transactions. | Returns Y . EDB Postgres 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 . EDB Postgres Advanced Server doesn't 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 . EDB Postgres 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 isn't 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 doesn't 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 don't 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 returns 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. Returns SQL_PARC_NO_BATCH if a single, cumulative row count is available for the entire array. |
SQL_PARAM_ARRAY_SELECTS: Indicates if the server returns one result set or a separate result set for each element in an array (or if the driver doesn't 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 might 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 CATALOG_NAME_SEPARATOR prev. SQL_QUALIFIER_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 might 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. Can 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 want to retrieve.value_pointer
— A pointer to the location in memory to 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
orSQL_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
is NULL,string_length_pointer
isn't 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
— Identifies the attribute whose value you want to set.value_pointer
— A pointer to the value that the attribute assumes.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 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. Possiblestring_length
values are shown in the table.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
orSQL_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 timeframe in which they can be set. Some attributes must be set before the connection is established, while others can be set only 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
— Identifies the attribute whose value you want to retrieve.value_pointer
— A pointer to the location in memory to receive theattribute
value.buffer_length
— If the attribute is a character string,buffer_length
is the length ofvalue_ptr
. If the value of the attribute isn't a character string,buffer_length
is unused.string_length_pointer
— A pointer to aSQLINTEGER
that receives the number of bytes available to return invalue_pointer
. Ifvalue_pointer
is NULL,string_length_pointer
isn't 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 want to set.value_pointer
— A pointer to the value assigned to the attribute. The value is a NULL terminated character string or a 32-bit integer value, depending on the specified attribute.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
isn't returned. Ifvalue_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 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 a statement attribute. The signature is:
stmt_handle
— The statement handle.attribute
— The attribute value.value_pointer
— A pointer to the location in memory to 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
orSQL_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
isn't 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
— The environment handle.attribute
— Identifies the statement attribute whose value you want to set.value_pointer
— A pointer to the location in memory that holds the value to 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
value - A
SQLULEN
value - A 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
orSQL_IS_UINTEGER
Any other type SQL_IS_POINTER
Error handling
You can retrieve diagnostic information for these ODBC functions mentioned by using 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
is 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 EDB Postgres 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.