Compartir a través de


Función SQLGetInfo

Conformidad
Versión introducida: Cumplimiento de estándares ODBC 1.0: ISO 92

Resumen
SQLGetInfo devuelve información general sobre el controlador y el origen de datos asociados a una conexión.

Sintaxis

  
SQLRETURN SQLGetInfo(  
     SQLHDBC         ConnectionHandle,  
     SQLUSMALLINT    InfoType,  
     SQLPOINTER      InfoValuePtr,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   StringLengthPtr);  

Argumentos

ConnectionHandle
[Entrada] Identificador de conexión.

InfoType
[Entrada] Tipo de información.

InfoValuePtr
[Salida] Puntero a un búfer en el que se va a devolver la información. Según el InfoType solicitado, la información devuelta será una de las siguientes: una cadena de caracteres terminada en NULL, un valor SQLUSMALLINT, una máscara de bits SQLUINTEGER, una marca SQLUINTEGER, un valor binario SQLUINTEGER o un valor SQLULEN.

Si el argumento InfoType es SQL_DRIVER_HDESC o SQL_DRIVER_HSTMT, el argumento InfoValuePtr es tanto de entrada como de salida. (Consulte los descriptores SQL_DRIVER_HDESC o SQL_DRIVER_HSTMT más adelante en esta descripción de la función para obtener más información).

Si InfoValuePtr es NULL, StringLengthPtr seguirá devolviendo el número total de bytes (excepto el carácter de terminación NULL para los datos de caracteres) disponible para devolver en el búfer al que apunta InfoValuePtr.

BufferLength
[Entrada] Longitud del búfer *InfoValuePtr . Si el valor de *InfoValuePtr no es una cadena de caracteres o si InfoValuePtr es un puntero nulo, se omite el argumento BufferLength . El controlador supone que el tamaño de *InfoValuePtr es SQLUSMALLINT o SQLUINTEGER, basado en infoType. Si *InfoValuePtr es una cadena Unicode (al llamar a SQLGetInfoW), el argumento BufferLength debe ser un número par; si no es así, se devuelve SQLSTATE HY090 (cadena no válida o longitud del búfer).

StringLengthPtr
[Salida] Puntero a un búfer en el que devolver el número total de bytes (excepto el carácter de terminación NULL para los datos de caracteres) disponible para devolver en *InfoValuePtr.

En el caso de los datos de caracteres, si el número de bytes disponibles para devolver es mayor o igual que BufferLength, la información de *InfoValuePtr se trunca en bytes BufferLength menos la longitud de un carácter de terminación NULL y el controlador termina con null.

Para todos los demás tipos de datos, se omite el valor de BufferLength y el controlador supone que el tamaño de *InfoValuePtr es SQLUSMALLINT o SQLUINTEGER, en función del InfoType.

Devoluciones

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR o SQL_INVALID_HANDLE.

Diagnóstico

Cuando SQLGetInfo devuelve SQL_ERROR o SQL_SUCCESS_WITH_INFO, se puede obtener un valor SQLSTATE asociado llamando a SQLGetDiagRec con un HandleType de SQL_HANDLE_DBC y un identificador de ConnectionHandle. En la tabla siguiente se enumeran los valores SQLSTATE devueltos normalmente por SQLGetInfo y se explica cada uno en el contexto de esta función; la notación "(DM)" precede a las descripciones de SQLSTATEs devueltas por el Administrador de controladores. El código de retorno asociado a cada valor SQLSTATE es SQL_ERROR, a menos que se indique lo contrario.

SQLSTATE Error Descripción
01000 Advertencia general Mensaje informativo específico del controlador. (Function devuelve SQL_SUCCESS_WITH_INFO).
01004 Datos de cadena, truncados a la derecha El búfer *InfoValuePtr no era lo suficientemente grande como para devolver toda la información solicitada. Por lo tanto, la información se ha truncado. La longitud de la información solicitada en su formulario sintruir se devuelve en *StringLengthPtr. (Function devuelve SQL_SUCCESS_WITH_INFO).
08003 Conexión no abierta (DM) El tipo de información solicitada en InfoType requiere una conexión abierta. De los tipos de información reservados por ODBC, solo se pueden devolver SQL_ODBC_VER sin una conexión abierta.
08S01 Error de vínculo de comunicación Se produjo un error en el vínculo de comunicación entre el controlador y el origen de datos al que se conectó el controlador antes de que la función completara el procesamiento.
HY000 Error general Se produjo un error para el que no había ningún SQLSTATE específico y para el que no se definió SQLSTATE específico de la implementación. El mensaje de error devuelto por SQLGetDiagRec en el búfer *MessageText describe el error y su causa.
HY001 Error de asignación de memoria El controlador no pudo asignar memoria necesaria para admitir la ejecución o finalización de la función.
HY010 Error de secuencia de funciones (DM) SQLExecute, SQLExecDirect o SQLMoreResults se llamó a para statementHandle y devolvió SQL_PARAM_DATA_AVAILABLE. Se llamó a esta función antes de recuperar los datos para todos los parámetros transmitidos.
HY013 Error de administración de memoria No se pudo procesar la llamada de función porque no se pudo tener acceso a los objetos de memoria subyacentes, posiblemente debido a condiciones de memoria baja.
HY024 Valor de atributo no válido (DM) El argumento InfoType se SQL_DRIVER_HSTMT y el valor al que apunta InfoValuePtr no era un identificador de instrucción válido.

(DM) El argumento InfoType se SQL_DRIVER_HDESC y el valor al que apunta InfoValuePtr no era un identificador de descriptor válido.
HY090 Longitud de búfer o cadena no válida (DM) El valor especificado para el argumento BufferLength era menor que 0.

(DM) El valor especificado para BufferLength era un número impar y *InfoValuePtr era de un tipo de datos Unicode.
HY096 Tipo de información fuera del intervalo El valor especificado para el argumento InfoType no era válido para la versión de ODBC compatible con el controlador.
HY117 La conexión se suspende debido al estado de transacción desconocido. Solo se permiten las funciones de desconexión y solo lectura. (DM) Para obtener más información sobre el estado suspendido, vea Función SQLEndTran.
HYC00 Campo opcional no implementado El valor especificado para el argumento InfoType era un valor específico del controlador que no es compatible con el controlador.
HYT01 Se ha agotado el tiempo de espera de la conexión. El período de tiempo de espera de conexión expiró antes de que el origen de datos respondiera a la solicitud. El período de tiempo de espera de conexión se establece a través de SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 El controlador no admite esta función (DM) El controlador que corresponde a ConnectionHandle no admite la función .

Comentarios

Los tipos de información definidos actualmente se muestran en "Tipos de información", más adelante en esta sección; se espera que se defina más para aprovechar los distintos orígenes de datos. ODBC reserva un intervalo de tipos de información; los desarrolladores de controladores deben reservar valores para su propio uso específico del controlador de Open Group. SQLGetInfo no realiza ninguna conversión Unicode ni thunking (vea apéndice A: Códigos de error ODBC de la referencia del programador de ODBC) para infoTypes definidos por el controlador. Para más información, consulte Tipos de datos específicos del controlador, Tipos de descriptores, Tipos de información, Tipos de diagnóstico y Atributos. El formato de la información devuelta en *InfoValuePtr depende del InfoType solicitado. SQLGetInfo devolverá información en uno de los cinco formatos diferentes:

  • Una cadena de caracteres terminada en NULL

  • Valor SQLUSMALLINT

  • Máscara de bits SQLUINTEGER

  • Valor SQLUINTEGER

  • Valor binario SQLUINTEGER

El formato de cada uno de los siguientes tipos de información se indica en la descripción del tipo. La aplicación debe convertir el valor devuelto en *InfoValuePtr en consecuencia. Para obtener un ejemplo de cómo una aplicación podría recuperar datos de una máscara de bits SQLUINTEGER, vea "Ejemplo de código".

Un controlador debe devolver un valor para cada tipo de información definido en las tablas siguientes. Si un tipo de información no se aplica al controlador o al origen de datos, el controlador devuelve uno de los valores enumerados en la tabla siguiente.

Tipo de información Valor
Cadena de caracteres ("Y" o "N") "N"
Cadena de caracteres (no "Y" o "N") Cadena vacía
SQLUSMALLINT 0
Máscara de bits SQLUINTEGER o valor binario SQLUINTEGER 0L

Por ejemplo, si un origen de datos no admite procedimientos, SQLGetInfo devuelve los valores enumerados en la tabla siguiente para los valores de InfoType relacionados con los procedimientos.

InfoType Valor
SQL_PROCEDURES "N"
SQL_ACCESSIBLE_PROCEDURES "N"
SQL_MAX_PROCEDURE_NAME_LEN 0
SQL_PROCEDURE_TERM Cadena vacía

SQLGetInfo devuelve SQLSTATE HY096 (valor de argumento no válido) para los valores de InfoType que están en el intervalo de tipos de información reservados para su uso por ODBC, pero no están definidos por la versión de ODBC compatible con el controlador. Para determinar con qué versión de ODBC cumple un controlador, una aplicación llama a SQLGetInfo con el tipo de información SQL_DRIVER_ODBC_VER. SQLGetInfo devuelve SQLSTATE HYC00 (característica opcional no implementada) para los valores de InfoType que están en el intervalo de tipos de información reservados para uso específico del controlador, pero no son compatibles con el controlador.

Todas las llamadas a SQLGetInfo requieren una conexión abierta, excepto cuando infoType es SQL_ODBC_VER, que devuelve la versión del Administrador de controladores.

Tipos de información

En esta sección se enumeran los tipos de información admitidos por SQLGetInfo. Los tipos de información se agrupan de forma categórica y se enumeran alfabéticamente. También se enumeran los tipos de información que se agregaron o cambiaron el nombre de ODBC 3*.x*.

Información del controlador

Los siguientes valores del argumento InfoType devuelven información sobre el controlador ODBC, como el número de instrucciones activas, el nombre del origen de datos y el nivel de cumplimiento de estándares de interfaz:

SQL_ACTIVE_ENVIRONMENTS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_DATA_SOURCE_NAME
SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDBC
SQL_DRIVER_HDESC
SQL_DRIVER_HENV
SQL_DRIVER_HLIB
SQL_DRIVER_HSTMT
SQL_DRIVER_NAME
SQL_DRIVER_ODBC_VER
SQL_DRIVER_VER
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1

SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_FILE_USAGE
SQL_GETDATA_EXTENSIONS
SQL_INFO_SCHEMA_VIEWS
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_DRIVER_CONNECTIONS
SQL_ODBC_INTERFACE_CONFORMANCE
SQL_ODBC_STANDARD_CLI_CONFORMANCE
SQL_ODBC_VER
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_ROW_UPDATES
SQL_SEARCH_PATTERN_ESCAPE
SQL_SERVER_NAME
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2

Nota:

Al implementar SQLGetInfo, un controlador puede mejorar el rendimiento minimizando el número de veces que se envía o solicita información desde el servidor.

Información del producto de DBMS

Los siguientes valores del argumento InfoType devuelven información sobre el producto DBMS, como el nombre y la versión de DBMS:

SQL_DATABASE_NAME
SQL_DBMS_NAME

SQL_DBMS_VER

Información del origen de datos

Los siguientes valores del argumento InfoType devuelven información sobre el origen de datos, como las características del cursor y las funcionalidades de transacción:

SQL_ACCESSIBLE_PROCEDURES
SQL_ACCESSIBLE_TABLES
SQL_BOOKMARK_PERSISTENCE
SQL_CATALOG_TERM
SQL_COLLATION_SEQ
SQL_CONCAT_NULL_BEHAVIOR
SQL_CURSOR_COMMIT_BEHAVIOR
SQL_CURSOR_ROLLBACK_BEHAVIOR
SQL_CURSOR_SENSITIVITY
SQL_DATA_SOURCE_READ_ONLY
SQL_DEFAULT_TXN_ISOLATION
SQL_DESCRIBE_PARAMETER

SQL_MULT_RESULT_SETS
SQL_MULTIPLE_ACTIVE_TXN
SQL_NEED_LONG_DATA_LEN
SQL_NULL_COLLATION
SQL_PROCEDURE_TERM
SQL_SCHEMA_TERM
SQL_SCROLL_OPTIONS
SQL_TABLE_TERM
SQL_TXN_CAPABLE
SQL_TXN_ISOLATION_OPTION
SQL_USER_NAME

SQL compatible

Los siguientes valores del argumento InfoType devuelven información sobre las instrucciones SQL admitidas por el origen de datos. La sintaxis SQL de cada característica descrita por estos tipos de información es la sintaxis sql-92. Estos tipos de información no describen exhaustivamente toda la gramática de SQL-92. En su lugar, describen las partes de la gramática para las que los orígenes de datos suelen ofrecer distintos niveles de compatibilidad. En concreto, se tratan la mayoría de las instrucciones DDL de SQL-92.

Las aplicaciones deben determinar el nivel general de gramática admitida del tipo de información SQL_SQL_CONFORMANCE y usar los otros tipos de información para determinar las variaciones del nivel de cumplimiento de estándares indicados.

SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ALTER_TABLE
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_CATALOG_LOCATION
SQL_CATALOG_NAME
SQL_CATALOG_NAME_SEPARATOR
SQL_CATALOG_USAGE
SQL_COLUMN_ALIAS
SQL_CORRELATION_NAME
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_DDL_INDEX
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA

SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_EXPRESSIONS_IN_ORDERBY
SQL_GROUP_BY
SQL_IDENTIFIER_CASE
SQL_IDENTIFIER_QUOTE_CHAR
SQL_INDEX_KEYWORDS
SQL_INSERT_STATEMENT
SQL_INTEGRITY
SQL_KEYWORDS
SQL_LIKE_ESCAPE_CLAUSE
SQL_NON_NULLABLE_COLUMNS
SQL_OJ_CAPABILITIES
SQL_ORDER_BY_COLUMNS_IN_SELECT
SQL_OUTER_JOINS
SQL_PROCEDURES
SQL_QUOTED_IDENTIFIER_CASE
SQL_SCHEMA_USAGE
SQL_SPECIAL_CHARACTERS
SQL_SQL_CONFORMANCE
SQL_SUBQUERIES
SQL_UNION

Límites de SQL

Los siguientes valores del argumento InfoType devuelven información sobre los límites aplicados a identificadores y cláusulas de instrucciones SQL, como las longitudes máximas de identificadores y el número máximo de columnas de una lista de selección. El controlador o el origen de datos pueden imponer limitaciones.

SQL_MAX_BINARY_LITERAL_LEN
SQL_MAX_CATALOG_NAME_LEN
SQL_MAX_CHAR_LITERAL_LEN
SQL_MAX_COLUMN_NAME_LEN
SQL_MAX_COLUMNS_IN_GROUP_BY
SQL_MAX_COLUMNS_IN_INDEX
SQL_MAX_COLUMNS_IN_ORDER_BY
SQL_MAX_COLUMNS_IN_SELECT
SQL_MAX_COLUMNS_IN_TABLE
SQL_MAX_CURSOR_NAME_LEN

SQL_MAX_IDENTIFIER_LEN
SQL_MAX_INDEX_SIZE
SQL_MAX_PROCEDURE_NAME_LEN
SQL_MAX_ROW_SIZE
SQL_MAX_ROW_SIZE_INCLUDES_LONG
SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_STATEMENT_LEN
SQL_MAX_TABLE_NAME_LEN
SQL_MAX_TABLES_IN_SELECT
SQL_MAX_USER_NAME_LEN

Información de función escalar

Los siguientes valores del argumento InfoType devuelven información sobre las funciones escalares admitidas por el origen de datos y el controlador. Para obtener más información sobre las funciones escalares, vea Apéndice E: Funciones escalares.

SQL_CONVERT_FUNCTIONS
SQL_NUMERIC_FUNCTIONS
SQL_STRING_FUNCTIONS
SQL_SYSTEM_FUNCTIONS

SQL_TIMEDATE_ADD_INTERVALS
SQL_TIMEDATE_DIFF_INTERVALS
SQL_TIMEDATE_FUNCTIONS

Información de conversión

Los siguientes valores del argumento InfoType devuelven una lista de los tipos de datos SQL a los que el origen de datos puede convertir el tipo de datos SQL especificado con la función escalar CONVERT :

SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH

SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR

Tipos de información agregados para ODBC 3.x

Se han agregado los siguientes valores del argumento InfoType para ODBC 3.x:

SQL_ACTIVE_ENVIRONMENTS
SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_CATALOG_NAME
SQL_COLLATION_SEQ
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_CURSOR_SENSITIVITY
SQL_DDL_INDEX
SQL_DESCRIBE_PARAMETER
SQL_DM_VER

SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDESC
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA
SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_INFO_SCHEMA_VIEWS
SQL_INSERT_STATEMENT
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_IDENTIFIER_LEN
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2
SQL_XOPEN_CLI_YEAR

Tipos de información cambiados de nombre para ODBC 3.x

Se ha cambiado el nombre de los siguientes valores del argumento InfoType para ODBC 3.x.

Nombre anterior Nombre nuevo
SQL_ACTIVE_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
SQL_ACTIVE_STATEMENTS SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_OWNER_NAME_LEN SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_QUALIFIER_NAME_LEN SQL_MAX_CATALOG_NAME_LEN
SQL_ODBC_SQL_OPT_IEF SQL_INTEGRITY
SQL_OWNER_TERM SQL_SCHEMA_TERM
SQL_OWNER_USAGE SQL_SCHEMA_USAGE
SQL_QUALIFIER_LOCATION SQL_CATALOG_LOCATION
SQL_QUALIFIER_NAME_SEPARATOR SQL_CATALOG_NAME_SEPARATOR
SQL_QUALIFIER_TERM SQL_CATALOG_TERM
SQL_QUALIFIER_USAGE SQL_CATALOG_USAGE

Tipos de información en desuso en ODBC 3.x

Los siguientes valores del argumento InfoType han quedado en desuso en ODBC 3.x. Los controladores ODBC 3.x deben seguir admitiendo estos tipos de información para la compatibilidad con versiones anteriores con aplicaciones ODBC 2.x. (Para obtener más información sobre estos tipos, consulte Compatibilidad con SQLGetInfo en el apéndice G: Instrucciones del controlador para la compatibilidad con versiones anteriores).

SQL_FETCH_DIRECTION
SQL_LOCK_TYPES
SQL_ODBC_API_CONFORMANCE
SQL_ODBC_SQL_CONFORMANCE

SQL_POS_OPERATIONS
SQL_POSITIONED_STATEMENTS
SQL_SCROLL_CONCURRENCY
SQL_STATIC_SENSITIVITY

Descripciones de tipos de información

En la tabla siguiente se enumeran alfabéticamente cada tipo de información, la versión de ODBC en la que se introdujo y su descripción.

Tipo de información Versión de ODBC Descripción
SQL_ACCESSIBLE_PROCEDURES 1.0 Cadena de caracteres: "Y" si el usuario puede ejecutar todos los procedimientos devueltos por SQLProcedures; "N" si puede haber procedimientos devueltos que el usuario no puede ejecutar.
SQL_ACCESSIBLE_TABLES 1.0 Cadena de caracteres: "Y" si el usuario tiene garantizados privilegios SELECT para todas las tablas devueltas por SQLTables; "N" si puede haber tablas devueltas a las que el usuario no puede acceder.
SQL_ACTIVE_ENVIRONMENTS 3,0 Valor SQLUSMALLINT que especifica el número máximo de entornos activos que el controlador puede admitir. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.
SQL_AGGREGATE_FUNCTIONS 3,0 Una máscara de bits SQLUINTEGER que enumera la compatibilidad con las funciones de agregación:
SQL_AF_ALL
SQL_AF_AVG
SQL_AF_COUNT
SQL_AF_DISTINCT
SQL_AF_MAX
SQL_AF_MIN
SQL_AF_SUM

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá todas estas opciones como se admite.
SQL_ALTER_DOMAIN 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción ALTER DOMAIN , tal como se define en SQL-92, compatible con el origen de datos. Un controlador compatible con el nivel completo de SQL-92 siempre devolverá todas las máscaras de bits. Un valor devuelto de "0" significa que no se admite la instrucción ALTER DOMAIN .

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_AD_ADD_DOMAIN_CONSTRAINT = Se admite agregar una restricción de dominio (nivel completo)
SQL_AD_ADD_DOMAIN_DEFAULT = <se admite la cláusula> predeterminada alter domain><set (nivel completo)
SQL_AD_CONSTRAINT_NAME_DEFINITION = <cláusula> de definición de nombre de restricción se admite para la restricción de dominio de nomenclatura (nivel intermedio)
SQL_AD_DROP_DOMAIN_CONSTRAINT = <cláusula> drop domain constraint se admite (nivel completo)
SQL_AD_DROP_DOMAIN_DEFAULT = <se admite la cláusula> predeterminada alter domain><drop domain (nivel completo)

Los bits siguientes especifican los atributos de restricción admitidos <> si <se admite agregar restricción> de dominio (se establece el bit de SQL_AD_ADD_DOMAIN_CONSTRAINT):
SQL_AD_ADD_CONSTRAINT_DEFERRABLE (nivel completo)
SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE (nivel completo)
SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED (nivel completo)
SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE (nivel completo)
SQL_ALTER_TABLE 2.0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción ALTER TABLE compatible con el origen de datos.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_AT_ADD_COLUMN_COLLATION = <se admite la cláusula add column> , con facilidad para especificar intercalación de columna (nivel completo) (ODBC 3.0)
SQL_AT_ADD_COLUMN_DEFAULT = <se admite la cláusula add column> , con facilidad para especificar los valores predeterminados de columna (nivel de transición fiPS) (ODBC 3.0)
SQL_AT_ADD_COLUMN_SINGLE = <se admite agregar columna> (nivel de transición de FIPS) (ODBC 3.0)
SQL_AT_ADD_CONSTRAINT = <se admite la cláusula add column> , con facilidad para especificar restricciones de columna (nivel de transición de FIPS) (ODBC 3.0)
SQL_AT_ADD_TABLE_CONSTRAINT = <se admite la cláusula add table constraint> (nivel de transición de FIPS) (ODBC 3.0)
SQL_AT_CONSTRAINT_NAME_DEFINITION = <definición> de nombre de restricción se admite para asignar nombres a restricciones de columna y tabla (nivel intermedio) (ODBC 3.0)
SQL_AT_DROP_COLUMN_CASCADE = <columna de colocación> CASCADE se admite (nivel de transición de FIPS) (ODBC 3.0)
SQL_AT_DROP_COLUMN_DEFAULT = <se admite la cláusula> predeterminada alter column><drop column (nivel intermedio) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <drop column> RESTRICT es compatible (nivel de transición de FIPS) (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = <drop column> RESTRICT es compatible (nivel de transición de FIPS) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <se admite la cláusula> predeterminada alter column><set column (nivel intermedio) (ODBC 3.0)

Los bits siguientes especifican los atributos> de restricción de compatibilidad <si se admite la especificación de restricciones de columna o tabla (se establece el bit de SQL_AT_ADD_CONSTRAINT):
SQL_AT_CONSTRAINT_INITIALLY_DEFERRED (nivel completo) (ODBC 3.0)
SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE (nivel completo) (ODBC 3.0)
SQL_AT_CONSTRAINT_DEFERRABLE (nivel completo) (ODBC 3.0)
SQL_AT_CONSTRAINT_NON_DEFERRABLE (nivel completo) (ODBC 3.0)
SQL_ASYNC_DBC_FUNCTIONS 3.8 Valor SQLUINTEGER que indica si el controlador puede ejecutar funciones de forma asincrónica en el identificador de conexión.

SQL_ASYNC_DBC_CAPABLE = El controlador puede ejecutar funciones de conexión de forma asincrónica.
SQL_ASYNC_DBC_NOT_CAPABLE = El controlador no puede ejecutar funciones de conexión de forma asincrónica.
SQL_ASYNC_MODE 3,0 Valor SQLUINTEGER que indica el nivel de compatibilidad asincrónica en el controlador:

SQL_AM_CONNECTION = Se admite la ejecución asincrónica de nivel de conexión. Todos los identificadores de instrucción asociados a un identificador de conexión determinado están en modo asincrónico o todos están en modo sincrónico. Un identificador de instrucción en una conexión no puede estar en modo asincrónico mientras que otro identificador de instrucción en la misma conexión está en modo sincrónico y viceversa.
SQL_AM_STATEMENT = Se admite la ejecución asincrónica de nivel de instrucción. Algunos identificadores de instrucción asociados a un identificador de conexión pueden estar en modo asincrónico, mientras que otros identificadores de instrucción en la misma conexión están en modo sincrónico.
SQL_AM_NONE = No se admite el modo asincrónico.
SQL_ASYNC_NOTIFICATION 3.8 Valor SQLUINTEGER que indica si el controlador admite notificaciones asincrónicas:

SQL_ASYNC_NOTIFICATION_CAPABLE = La notificación de ejecución asincrónica es compatible con el controlador.
SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = La notificación de ejecución asincrónica no es compatible con el controlador.

Hay dos categorías de operaciones asincrónicas ODBC: operaciones asincrónicas de nivel de conexión y operaciones asincrónicas de nivel de instrucción. Si un controlador devuelve SQL_ASYNC_NOTIFICATION_CAPABLE, debe admitir la notificación de todas las API que puede ejecutar de forma asincrónica.
SQL_BATCH_ROW_COUNT 3,0 Máscara de bits SQLUINTEGER que enumera el comportamiento del controlador con respecto a la disponibilidad de recuentos de filas. Las máscaras de bits siguientes se usan junto con el tipo de información:

SQL_BRC_ROLLED_UP = Los recuentos de filas para instrucciones INSERT, DELETE o UPDATE consecutivas se acumulan en una. Si no se establece este bit, los recuentos de filas están disponibles para cada instrucción.
SQL_BRC_PROCEDURES = Recuentos de filas, si los hay, están disponibles cuando se ejecuta un lote en un procedimiento almacenado. Si hay recuentos de filas disponibles, se pueden inscribir o estar disponibles individualmente, en función del bit de SQL_BRC_ROLLED_UP.
SQL_BRC_EXPLICIT = Recuentos de filas, si los hay, están disponibles cuando se ejecuta un lote directamente mediante una llamada a SQLExecute o SQLExecDirect. Si hay recuentos de filas disponibles, se pueden inscribir o estar disponibles individualmente, en función del bit de SQL_BRC_ROLLED_UP.
SQL_BATCH_SUPPORT 3,0 Máscara de bits SQLUINTEGER que enumera la compatibilidad del controlador con lotes. Las máscaras de bits siguientes se usan para determinar qué nivel se admite:

SQL_BS_SELECT_EXPLICIT = El controlador admite lotes explícitos que pueden tener instrucciones de generación de conjuntos de resultados.
SQL_BS_ROW_COUNT_EXPLICIT = El controlador admite lotes explícitos que pueden tener instrucciones de generación de recuento de filas.
SQL_BS_SELECT_PROC = El controlador admite procedimientos explícitos que pueden tener instrucciones de generación de conjuntos de resultados.
SQL_BS_ROW_COUNT_PROC = El controlador admite procedimientos explícitos que pueden tener instrucciones de generación de recuento de filas.
SQL_BOOKMARK_PERSISTENCE 2.0 Máscara de bits SQLUINTEGER enumerando las operaciones a través de las cuales se conservan los marcadores. Las máscaras de bits siguientes se usan junto con la marca para determinar a través de qué marcadores de opciones persisten:

SQL_BP_CLOSE = Los marcadores son válidos después de que una aplicación llame a SQLFreeStmt con la opción SQL_CLOSE o SQLCloseCursor para cerrar el cursor asociado a una instrucción .
SQL_BP_DELETE = El marcador de una fila es válido después de que se haya eliminado esa fila.
SQL_BP_DROP = Los marcadores son válidos después de que una aplicación llame a SQLFreeHandle con un HandleType de SQL_HANDLE_STMT para quitar una instrucción.
SQL_BP_TRANSACTION = Los marcadores son válidos después de que una aplicación confirme o revierte una transacción.
SQL_BP_UPDATE = El marcador de una fila es válido después de actualizar cualquier columna de esa fila, incluidas las columnas de clave.
SQL_BP_OTHER_HSTMT = Se puede usar un marcador asociado a una instrucción con otra instrucción. A menos que se especifique SQL_BP_CLOSE o SQL_BP_DROP, el cursor de la primera instrucción debe estar abierto.
SQL_CATALOG_LOCATION 2.0 Valor SQLUSMALLINT que indica la posición del catálogo en un nombre de tabla calificado:

SQL_CL_START
SQL_CL_END
Por ejemplo, un controlador Xbase devuelve SQL_CL_START porque el nombre del directorio (catálogo) está al principio del nombre de la tabla, como en \EMPDATA\EMP. DBF. Un controlador de ORACLE Server devuelve SQL_CL_END porque el catálogo está al final del nombre de la tabla, como en ADMIN. EMP@EMPDATA.

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá SQL_CL_START. Se devuelve un valor de 0 si el origen de datos no admite catálogos. Para determinar si se admiten catálogos, una aplicación llama a SQLGetInfo con el tipo de información SQL_CATALOG_NAME.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_QUALIFIER_LOCATION InfoType de ODBC 2.0.
SQL_CATALOG_NAME 3,0 Cadena de caracteres: "Y" si el servidor admite nombres de catálogo o "N" si no lo hace.

Un controlador conforme al nivel completo de SQL-92 siempre devolverá "Y".
SQL_CATALOG_NAME_SEPARATOR 1.0 Cadena de caracteres: el carácter o los caracteres que el origen de datos define como separador entre un nombre de catálogo y el elemento de nombre completo que sigue o lo precede.

Se devuelve una cadena vacía si el origen de datos no admite catálogos. Para determinar si se admiten catálogos, una aplicación llama a SQLGetInfo con el tipo de información SQL_CATALOG_NAME. Un controlador conforme al nivel completo de SQL-92 siempre devolverá ".".

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_QUALIFIER_NAME_SEPARATOR InfoType de ODBC 2.0.
SQL_CATALOG_TERM 1.0 Cadena de caracteres con el nombre del proveedor del origen de datos para un catálogo; por ejemplo, "base de datos" o "directorio". Esta cadena puede estar en mayúsculas, minúsculas o minúsculas mixtas.

Se devuelve una cadena vacía si el origen de datos no admite catálogos. Para determinar si se admiten catálogos, una aplicación llama a SQLGetInfo con el tipo de información SQL_CATALOG_NAME. Un controlador conforme al nivel completo de SQL-92 siempre devolverá "catalog".

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_QUALIFIER_TERM InfoType de ODBC 2.0.
SQL_CATALOG_USAGE 2.0 Máscara de bits SQLUINTEGER que enumera las instrucciones en las que se pueden usar los catálogos.

Las máscaras de bits siguientes se usan para determinar dónde se pueden usar los catálogos:
SQL_CU_DML_STATEMENTS = Los catálogos se admiten en todas las instrucciones del lenguaje de manipulación de datos: SELECT, INSERT, UPDATE, DELETE y, si se admiten, instrucciones SELECT FOR UPDATE y update y delete posicionadas.
SQL_CU_PROCEDURE_INVOCATION = Los catálogos se admiten en la instrucción de invocación de procedimiento ODBC.
SQL_CU_TABLE_DEFINITION = Los catálogos se admiten en todas las instrucciones de definición de tabla: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE y DROP VIEW.
SQL_CU_INDEX_DEFINITION = Los catálogos se admiten en todas las instrucciones de definición de índice: CREATE INDEX y DROP INDEX.
SQL_CU_PRIVILEGE_DEFINITION = Los catálogos se admiten en todas las instrucciones de definición de privilegios: GRANT y REVOKE.

Se devuelve un valor de 0 si el origen de datos no admite catálogos. Para determinar si se admiten catálogos, una aplicación llama a SQLGetInfo con el tipo de información SQL_CATALOG_NAME. Un controlador conforme al nivel completo de SQL-92 siempre devolverá una máscara de bits con todos estos bits establecidos.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_QUALIFIER_USAGE InfoType de ODBC 2.0.
SQL_COLLATION_SEQ 3,0 Nombre de la secuencia de intercalación. Se trata de una cadena de caracteres que indica el nombre de la intercalación predeterminada para el juego de caracteres predeterminado para este servidor (por ejemplo, "ISO 8859-1" o EBCDIC). Si se desconoce, se devolverá una cadena vacía. Un controlador conforme al nivel completo de SQL-92 siempre devolverá una cadena no vacía.
SQL_COLUMN_ALIAS 2.0 Cadena de caracteres: "Y" si el origen de datos admite alias de columna; de lo contrario, "N".

Un alias de columna es un nombre alternativo que se puede especificar para una columna de la lista de selección mediante una cláusula AS. Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá "Y".
SQL_CONCAT_NULL_BEHAVIOR 1.0 Valor SQLUSMALLINT que indica cómo controla el origen de datos la concatenación de columnas de tipo de datos de caracteres con valores NULL con columnas de tipo de datos de caracteres con valores que no son NULL:
SQL_CB_NULL = El resultado tiene un valor NULL.
SQL_CB_NON_NULL = El resultado es la concatenación de columnas o columnas con valores no NULL.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá SQL_CB_NULL.
SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_GUID
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR
1.0 Máscara de bits SQLUINTEGER. La máscara de bits indica las conversiones admitidas por el origen de datos con la función escalar CONVERT para los datos del tipo denominado en InfoType. Si la máscara de bits es igual a cero, el origen de datos no admite ninguna conversión de datos del tipo con nombre, incluida la conversión al mismo tipo de datos.

Por ejemplo, para determinar si un origen de datos admite la conversión de datos de SQL_INTEGER al tipo de datos SQL_BIGINT, una aplicación llama a SQLGetInfo con el InfoType de SQL_CONVERT_INTEGER. La aplicación realiza una operación AND con la máscara de bits devuelta y SQL_CVT_BIGINT. Si el valor resultante es distinto de cero, se admite la conversión.

Las máscaras de bits siguientes se usan para determinar qué conversiones se admiten:
SQL_CVT_BIGINT (ODBC 1.0)
SQL_CVT_BINARY (ODBC 1.0)
SQL_CVT_BIT (ODBC 1.0)
SQL_CVT_GUID (ODBC 3.5)
SQL_CVT_CHAR (ODBC 1.0)
SQL_CVT_DATE (ODBC 1.0)
SQL_CVT_DECIMAL (ODBC 1.0)
SQL_CVT_DOUBLE (ODBC 1.0)
SQL_CVT_FLOAT (ODBC 1.0)
SQL_CVT_INTEGER (ODBC 1.0)
SQL_CVT_INTERVAL_YEAR_MONTH (ODBC 3.0)
SQL_CVT_INTERVAL_DAY_TIME (ODBC 3.0)
SQL_CVT_LONGVARBINARY (ODBC 1.0)
SQL_CVT_LONGVARCHAR (ODBC 1.0)
SQL_CVT_NUMERIC (ODBC 1.0)
SQL_CVT_REAL (ODBC 1.0)
SQL_CVT_SMALLINT (ODBC 1.0)
SQL_CVT_TIME (ODBC 1.0)
SQL_CVT_TIMESTAMP (ODBC 1.0)
SQL_CVT_TINYINT (ODBC 1.0)
SQL_CVT_VARBINARY (ODBC 1.0)
SQL_CVT_VARCHAR (ODBC 1.0)
SQL_CONVERT_FUNCTIONS 1.0 Máscara de bits SQLUINTEGER que enumera las funciones de conversión escalares compatibles con el controlador y el origen de datos asociado.

La máscara de bits siguiente se usa para determinar qué funciones de conversión se admiten:
SQL_FN_CVT_CASTSQL_FN_CVT_CONVERT
SQL_CORRELATION_NAME 1.0 Valor SQLUSMALLINT que indica si se admiten nombres de correlación de tablas:
SQL_CN_NONE = No se admiten nombres de correlación.
SQL_CN_DIFFERENT = Se admiten nombres de correlación, pero deben diferir de los nombres de las tablas que representan.
SQL_CN_ANY = Se admiten nombres de correlación y pueden ser cualquier nombre válido definido por el usuario.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá SQL_CN_ANY.
SQL_CREATE_ASSERTION 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE ASSERTION , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_CA_CREATE_ASSERTION

Los bits siguientes especifican el atributo de restricción admitido si se admite la capacidad de especificar los atributos de restricción explícitamente (consulte los tipos de información SQL_ALTER_TABLE y SQL_CREATE_TABLE):
SQL_CA_CONSTRAINT_INITIALLY_DEFERRED
SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE
SQL_CA_CONSTRAINT_DEFERRABLE
SQL_CA_CONSTRAINT_NON_DEFERRABLE

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá todas estas opciones como se admite. Un valor devuelto de "0" significa que no se admite la instrucción CREATE ASSERTION .
SQL_CREATE_CHARACTER_SET 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE CHARACTER SET , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_CCS_CREATE_CHARACTER_SET
SQL_CCS_COLLATE_CLAUSE
SQL_CCS_LIMITED_COLLATION

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá todas estas opciones como se admite. Un valor devuelto de "0" significa que no se admite la instrucción CREATE CHARACTER SET .
SQL_CREATE_COLLATION 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE COLLATION , tal como se define en SQL-92, compatible con el origen de datos.

La máscara de bits siguiente se usa para determinar qué cláusulas se admiten:
SQL_CCOL_CREATE_COLLATION

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá esta opción como se admite. Un valor devuelto de "0" significa que no se admite la instrucción CREATE COLLATION .
SQL_CREATE_DOMAIN 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE DOMAIN , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_CDO_CREATE_DOMAIN = Se admite la instrucción CREATE DOMAIN (nivel intermedio).
SQL_CDO_CONSTRAINT_NAME_DEFINITION = <definición de nombre> de restricción se admite para asignar nombres a restricciones de dominio (nivel intermedio).

Los bits siguientes especifican la capacidad de crear restricciones de columna:
SQL_CDO_DEFAULT = Se admite la especificación de restricciones de dominio (nivel intermedio)
SQL_CDO_CONSTRAINT = Se admite especificar valores predeterminados de dominio (nivel intermedio)
SQL_CDO_COLLATION = Se admite especificar la intercalación de dominio (nivel completo)

Los bits siguientes especifican los atributos de restricción admitidos si se admite la especificación de restricciones de dominio (se establece SQL_CDO_DEFAULT):
SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED (nivel completo)
SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE (nivel completo)
SQL_CDO_CONSTRAINT_DEFERRABLE (nivel completo)
SQL_CDO_CONSTRAINT_NON_DEFERRABLE (nivel completo)

Un valor devuelto de "0" significa que no se admite la instrucción CREATE DOMAIN .
SQL_CREATE_SCHEMA 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE SCHEMA , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_CS_CREATE_SCHEMA
SQL_CS_AUTHORIZATION
SQL_CS_DEFAULT_CHARACTER_SET

Un controlador conforme al nivel intermedio de SQL-92 siempre devolverá las opciones de SQL_CS_CREATE_SCHEMA y SQL_CS_AUTHORIZATION compatibles. También se deben admitir en el nivel de entrada sql-92, pero no necesariamente como instrucciones SQL. Un controlador compatible con el nivel completo de SQL-92 siempre devolverá todas estas opciones como se admite.
SQL_CREATE_TABLE 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE TABLE , tal como se define en SQL-92, compatible con el origen de datos.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_CT_CREATE_TABLE = Se admite la instrucción CREATE TABLE. (Nivel de entrada)
SQL_CT_TABLE_CONSTRAINT = Se admite la especificación de restricciones de tabla (nivel de transición de FIPS)
SQL_CT_CONSTRAINT_NAME_DEFINITION = La <cláusula de definición> de nombre de restricción se admite para asignar nombres a restricciones de columna y tabla (nivel intermedio)

Los bits siguientes especifican la capacidad de crear tablas temporales:
SQL_CT_COMMIT_PRESERVE = Las filas eliminadas se conservan en la confirmación. (Nivel completo)
SQL_CT_COMMIT_DELETE = Las filas eliminadas se eliminan en la confirmación. (Nivel completo)
SQL_CT_GLOBAL_TEMPORARY = Se pueden crear tablas temporales globales. (Nivel completo)
SQL_CT_LOCAL_TEMPORARY = Se pueden crear tablas temporales locales. (Nivel completo)

Los bits siguientes especifican la capacidad de crear restricciones de columna:
SQL_CT_COLUMN_CONSTRAINT = Se admite la especificación de restricciones de columna (nivel de transición de FIPS)
SQL_CT_COLUMN_DEFAULT = Se admite especificar los valores predeterminados de columna (nivel de transición de FIPS)
SQL_CT_COLUMN_COLLATION = Se admite especificar la intercalación de columnas (nivel completo)

Los bits siguientes especifican los atributos de restricción admitidos si se admiten restricciones de columna o tabla:
SQL_CT_CONSTRAINT_INITIALLY_DEFERRED (nivel completo)
SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE (nivel completo)
SQL_CT_CONSTRAINT_DEFERRABLE (nivel completo)
SQL_CT_CONSTRAINT_NON_DEFERRABLE (nivel completo)
SQL_CREATE_TRANSLATION 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE TRANSLATION , tal como se define en SQL-92, compatible con el origen de datos.

La máscara de bits siguiente se usa para determinar qué cláusulas se admiten:
SQL_CTR_CREATE_TRANSLATION

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá estas opciones como se admite. Un valor devuelto de "0" significa que no se admite la instrucción CREATE TRANSLATION .
SQL_CREATE_VIEW 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción CREATE VIEW , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_CV_CREATE_VIEW
SQL_CV_CHECK_OPTION
SQL_CV_CASCADED
SQL_CV_LOCAL

Un valor devuelto de "0" significa que no se admite la instrucción CREATE VIEW .

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá las opciones de SQL_CV_CREATE_VIEW y SQL_CV_CHECK_OPTION compatibles.

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá todas estas opciones como se admite.
SQL_CURSOR_COMMIT_BEHAVIOR 1.0 Valor SQLUSMALLINT que indica cómo afecta una operación COMMIT a los cursores y las instrucciones preparadas en el origen de datos (el comportamiento del origen de datos al confirmar una transacción).

El valor de este atributo reflejará el estado actual de la siguiente configuración: SQL_COPT_SS_PRESERVE_CURSORS.
SQL_CB_DELETE = Cerrar cursores y eliminar instrucciones preparadas. Para volver a usar el cursor, la aplicación debe volver a preparar y volver a ejecutar la instrucción.
SQL_CB_CLOSE = Cerrar cursores. Para instrucciones preparadas, la aplicación puede llamar a SQLExecute en la instrucción sin llamar a SQLPrepare de nuevo. El valor predeterminado para el controlador ODBC de SQL es SQL_CB_CLOSE. Esto significa que el controlador ODBC de SQL cerrará los cursores al confirmar una transacción.
SQL_CB_PRESERVE = Conservar cursores en la misma posición que antes de la operación COMMIT . La aplicación puede seguir capturando datos o puede cerrar el cursor y volver a ejecutar la instrucción sin volver a analizarlos.
SQL_CURSOR_ROLLBACK_BEHAVIOR 1.0 Valor SQLUSMALLINT que indica cómo afecta una operación ROLLBACK a los cursores y las instrucciones preparadas en el origen de datos:
SQL_CB_DELETE = Cerrar cursores y eliminar instrucciones preparadas. Para volver a usar el cursor, la aplicación debe volver a preparar y volver a ejecutar la instrucción.
SQL_CB_CLOSE = Cerrar cursores. Para instrucciones preparadas, la aplicación puede llamar a SQLExecute en la instrucción sin llamar a SQLPrepare de nuevo.
SQL_CB_PRESERVE = Conservar cursores en la misma posición que antes de la operación ROLLBACK . La aplicación puede seguir capturando datos o puede cerrar el cursor y volver a ejecutar la instrucción sin volver a analizarlos.
SQL_CURSOR_SENSITIVITY 3,0 Valor SQLUINTEGER que indica la compatibilidad con la confidencialidad del cursor:
SQL_INSENSITIVE = Todos los cursores del identificador de instrucción muestran el conjunto de resultados sin reflejar los cambios realizados en él por cualquier otro cursor dentro de la misma transacción.
SQL_UNSPECIFIED = No se especifica si los cursores del identificador de instrucción hacen visibles los cambios realizados en un conjunto de resultados por otro cursor dentro de la misma transacción. Los cursores del identificador de instrucción pueden hacer visible ninguno, algunos o todos estos cambios.
SQL_SENSITIVE = Los cursores son sensibles a los cambios realizados por otros cursores dentro de la misma transacción.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá la opción SQL_UNSPECIFIED como se admite.

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá la opción SQL_INSENSITIVE como se admite.
SQL_DATA_SOURCE_NAME 1.0 Cadena de caracteres con el nombre del origen de datos que se usó durante la conexión. Si la aplicación llamada SQLConnect, este es el valor del argumento szDSN . Si la aplicación llamada SQLDriverConnect o SQLBrowseConnect, este es el valor de la palabra clave DSN en el cadena de conexión pasado al controlador. Si el cadena de conexión no contenía la palabra clave DSN (por ejemplo, cuando contiene la palabra clave DRIVER), se trata de una cadena vacía.
SQL_DATA_SOURCE_READ_ONLY 1.0 Una cadena de caracteres. "Y" si el origen de datos está establecido en modo READ ONLY, "N" si es de lo contrario.

Esta característica solo pertenece al propio origen de datos; no es una característica del controlador que permite el acceso al origen de datos. Un controlador que es de lectura y escritura se puede usar con un origen de datos que sea de solo lectura. Si un controlador es de solo lectura, todos sus orígenes de datos deben ser de solo lectura y deben devolver SQL_DATA_SOURCE_READ_ONLY.
SQL_DATABASE_NAME 1.0 Cadena de caracteres con el nombre de la base de datos actual en uso, si el origen de datos define un objeto con nombre denominado "database".

En ODBC 3.x, también se puede devolver el valor devuelto para este InfoType llamando a SQLGetConnectAttr con un argumento Attribute de SQL_ATTR_CURRENT_CATALOG.
SQL_DATETIME_LITERALS 3,0 Máscara de bits SQLUINTEGER que enumera los literales datetime de SQL-92 admitidos por el origen de datos. Tenga en cuenta que se trata de los literales datetime enumerados en la especificación SQL-92 y son independientes de las cláusulas de escape literal datetime definidas por ODBC. Para obtener más información sobre las cláusulas de escape literal datetime odbc, vea Date, Time y Timestamp Literales.

Un controlador conforme al nivel de transición fiPS siempre devolverá el valor "1" en la máscara de bits para los bits de la lista siguiente. Un valor de "0" significa que no se admiten literales datetime de SQL-92.

Las máscaras de bits siguientes se usan para determinar qué literales se admiten:
SQL_DL_SQL92_DATE
SQL_DL_SQL92_TIME
SQL_DL_SQL92_TIMESTAMP
SQL_DL_SQL92_INTERVAL_YEAR
SQL_DL_SQL92_INTERVAL_MONTH
SQL_DL_SQL92_INTERVAL_DAY
SQL_DL_SQL92_INTERVAL_HOUR
SQL_DL_SQL92_INTERVAL_MINUTE
SQL_DL_SQL92_INTERVAL_SECOND
SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH
SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR
SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE
SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND
SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE
SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND
SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND
SQL_DBMS_NAME 1.0 Cadena de caracteres con el nombre del producto DBMS al que accede el controlador.
SQL_DBMS_VER 1.0 Cadena de caracteres que indica la versión del producto DBMS al que tiene acceso el controlador. La versión tiene el formato ##.#.#.#####, donde los dos primeros dígitos son la versión principal, los dos dígitos siguientes son la versión secundaria y los cuatro últimos dígitos son la versión de lanzamiento. El controlador debe representar la versión del producto DBMS en este formulario, pero también puede anexar la versión específica del producto de DBMS. Por ejemplo, "04.01.0000 Rdb 4.1".
SQL_DDL_INDEX 3,0 Valor SQLUINTEGER que indica la compatibilidad con la creación y eliminación de índices:
SQL_DI_CREATE_INDEX
SQL_DI_DROP_INDEX
SQL_DEFAULT_TXN_ISOLATION 1.0 Valor SQLUINTEGER que indica el nivel de aislamiento de transacción predeterminado admitido por el controlador o el origen de datos, o cero si el origen de datos no admite transacciones. Los siguientes términos se usan para definir los niveles de aislamiento de transacción:
La transacción de lectura sucia 1 cambia una fila. La transacción 2 lee la fila modificada antes de que la transacción 1 confirme el cambio. Si la transacción 1 revierte el cambio, la transacción 2 habrá leído una fila que se considera que nunca existía.
La transacción de lectura no repetible 1 lee una fila. La transacción 2 actualiza o elimina esa fila y confirma este cambio. Si la transacción 1 intenta volver a leer la fila, recibirá valores de fila diferentes o detectará que se ha eliminado la fila.
Phantom Transaction 1 lee un conjunto de filas que cumplen algunos criterios de búsqueda. La transacción 2 genera una o varias filas (mediante inserciones o actualizaciones) que coinciden con los criterios de búsqueda. Si la transacción 1 vuelve a ejecutar la instrucción que lee las filas, recibe un conjunto diferente de filas.

Si el origen de datos admite transacciones, el controlador devuelve una de las siguientes máscaras de bits:
SQL_TXN_READ_UNCOMMITTED = Lecturas sucias, lecturas no repetibles y fantasmas son posibles.
SQL_TXN_READ_COMMITTED = No se pueden realizar lecturas desfasadas. Las lecturas no repetibles y los fantasmas son posibles.
SQL_TXN_REPEATABLE_READ = No se pueden leer lecturas sucias ni lecturas no repetibles. Los fantasmas son posibles.
SQL_TXN_SERIALIZABLE = Las transacciones son serializables. Las transacciones serializables no permiten lecturas sucias, lecturas no repetibles ni fantasmas.
SQL_DESCRIBE_PARAMETER 3,0 Cadena de caracteres: "Y" si se pueden describir parámetros; "N", si no es así.

Un controlador conforme al nivel completo de SQL-92 normalmente devolverá "Y", ya que admitirá la instrucción DESCRIBE INPUT . Dado que esto no especifica directamente la compatibilidad con SQL subyacente, es posible que no se admitan parámetros de descripción, incluso en un controlador de nivel completo de SQL-92.
SQL_DM_VER 3,0 Cadena de caracteres con la versión del Administrador de controladores. La versión tiene el formato ##.#.##.#.#####, donde:
El primer conjunto de dos dígitos es la versión principal de ODBC, según lo indicado por la constante SQL_SPEC_MAJOR.
El segundo conjunto de dos dígitos es la versión secundaria de ODBC, según lo indicado por la constante SQL_SPEC_MINOR.
El tercer conjunto de cuatro dígitos es el número de compilación principal del Administrador de controladores.
El último conjunto de cuatro dígitos es el número de compilación secundaria del Administrador de controladores.
La versión del Administrador de controladores de Windows 7 es 03.80. La versión del Administrador de controladores de Windows 8 es 03.81.
SQL_DRIVER_AWARE_POOLING_SUPPORTED 3.8 Valor SQLUINTEGER que indica si el controlador admite la agrupación compatible con controladores. (Para obtener más información, consulte Agrupación de conexiones compatibles con controladores.

SQL_DRIVER_AWARE_POOLING_CAPABLE indica que el controlador puede admitir el mecanismo de agrupación compatible con controladores.
SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE indica que el controlador no puede admitir el mecanismo de agrupación compatible con controladores.

Un controlador no necesita implementar SQL_DRIVER_AWARE_POOLING_SUPPORTED y el Administrador de controladores no respetará el valor devuelto del controlador.
SQL_DRIVER_HDBCSQL_DRIVER_HENV 1.0 Valor DE SQLULEN, identificador de entorno o identificador de conexión del controlador, determinado por el argumento InfoType.

Estos tipos de información se implementan solo por el Administrador de controladores.
SQL_DRIVER_HDESC 3,0 Un valor SQLULEN, el identificador del descriptor del controlador determinado por el identificador de descriptor del Administrador de controladores, que debe pasarse a la entrada en *InfoValuePtr desde la aplicación. En este caso, InfoValuePtr es un argumento de entrada y salida. El identificador de descriptor de entrada pasado en *InfoValuePtr debe haberse asignado explícita o implícitamente en ConnectionHandle.

La aplicación debe realizar una copia del identificador del descriptor del Administrador de controladores antes de llamar a SQLGetInfo con este tipo de información, para asegurarse de que el identificador no se sobrescribe en la salida.

Solo el Administrador de controladores implementa este tipo de información.
SQL_DRIVER_HLIB 2.0 Valor DE SQLULEN, el valor posterior de la biblioteca de carga devuelto al Administrador de controladores cuando cargó el archivo DLL del controlador en un sistema operativo Microsoft Windows o su equivalente en otro sistema operativo. El identificador solo es válido para el identificador de conexión especificado en la llamada a SQLGetInfo.

Solo el Administrador de controladores implementa este tipo de información.
SQL_DRIVER_HSTMT 1.0 Un valor SQLULEN, el identificador de instrucción del controlador determinado por el identificador de instrucciones del Administrador de controladores, que se debe pasar a la entrada en *InfoValuePtr desde la aplicación. En este caso, InfoValuePtr es una entrada y un argumento de salida. El identificador de instrucción de entrada pasado en *InfoValuePtr debe haberse asignado en el argumento ConnectionHandle.

La aplicación debe realizar una copia del identificador de instrucciones del Administrador de controladores antes de llamar a SQLGetInfo con este tipo de información, para asegurarse de que el identificador no se sobrescribe en la salida.

Solo el Administrador de controladores implementa este tipo de información.
SQL_DRIVER_NAME 1.0 Cadena de caracteres con el nombre de archivo del controlador usado para acceder al origen de datos.
SQL_DRIVER_ODBC_VER 2.0 Cadena de caracteres con la versión de ODBC que admite el controlador. La versión tiene el formato ##.##, donde los dos primeros dígitos son la versión principal y los dos dígitos siguientes son la versión secundaria. SQL_SPEC_MAJOR y SQL_SPEC_MINOR definen los números de versión principal y secundaria. Para la versión de ODBC descrita en este manual, estas son 3 y 0, y el controlador debe devolver "03.00".

El Administrador de controladores ODBC no modificará el valor devuelto de SQLGetInfo(SQL_DRIVER_ODBC_VER) para mantener la compatibilidad con versiones anteriores de las aplicaciones existentes. El controlador especifica qué valor se devolverá. Sin embargo, un controlador que admita la extensibilidad de tipos de datos de C debe devolver 3.8 (o superior) cuando una aplicación llama a SQLSetEnvAttr para establecer SQL_ATTR_ODBC_VERSION en 3.8. Para obtener más información, vea el tema sobre tipos de datos C en ODBC.
SQL_DRIVER_VER 1.0 Cadena de caracteres con la versión del controlador y, opcionalmente, una descripción del controlador. Como mínimo, la versión tiene el formato ##.#.#.######,, donde los dos primeros dígitos son la versión principal, los dos dígitos siguientes son la versión secundaria y los cuatro últimos dígitos son la versión de lanzamiento.
SQL_DROP_ASSERTION 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP ASSERTION , tal como se define en SQL-92, compatible con el origen de datos.

La máscara de bits siguiente se usa para determinar qué cláusulas se admiten:
SQL_DA_DROP_ASSERTION

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá esta opción como se admite.
SQL_DROP_CHARACTER_SET 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP CHARACTER SET , tal como se define en SQL-92, compatible con el origen de datos.

La máscara de bits siguiente se usa para determinar qué cláusulas se admiten:
SQL_DCS_DROP_CHARACTER_SET

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá esta opción como se admite.
SQL_DROP_COLLATION 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP COLLATION , tal como se define en SQL-92, compatible con el origen de datos.

La máscara de bits siguiente se usa para determinar qué cláusulas se admiten:
SQL_DC_DROP_COLLATION

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá esta opción como se admite.
SQL_DROP_DOMAIN 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP DOMAIN , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_DD_DROP_DOMAIN
SQL_DD_CASCADE
SQL_DD_RESTRICT

Un controlador conforme al nivel intermedio de SQL-92 siempre devolverá todas estas opciones como se admite.
SQL_DROP_SCHEMA 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP SCHEMA , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_DS_DROP_SCHEMA
SQL_DS_CASCADE
SQL_DS_RESTRICT

Un controlador conforme al nivel intermedio de SQL-92 siempre devolverá todas estas opciones como se admite.
SQL_DROP_TABLE 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP TABLE , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_DT_DROP_TABLE
SQL_DT_CASCADE
SQL_DT_RESTRICT

Un controlador compatible con el nivel de transición de FIPS siempre devolverá todas estas opciones como se admite.
SQL_DROP_TRANSLATION 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP TRANSLATION , tal como se define en SQL-92, compatible con el origen de datos.

La máscara de bits siguiente se usa para determinar qué cláusulas se admiten:
SQL_DTR_DROP_TRANSLATION

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá esta opción como se admite.
SQL_DROP_VIEW 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas de la instrucción DROP VIEW , tal como se define en SQL-92, compatible con el origen de datos.

Las máscaras de bits siguientes se usan para determinar qué cláusulas se admiten:
SQL_DV_DROP_VIEW
SQL_DV_CASCADE
SQL_DV_RESTRICT

Un controlador compatible con el nivel de transición de FIPS siempre devolverá todas estas opciones como se admite.
SQL_DYNAMIC_CURSOR_ATTRIBUTES1 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor dinámico compatible con el controlador. Esta máscara de bits contiene el primer subconjunto de atributos; para el segundo subconjunto, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES2.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA1_NEXT = se admite un argumento FetchOrientation de SQL_FETCH_NEXT en una llamada a SQLFetchScroll cuando el cursor es un cursor dinámico.
SQL_CA1_ABSOLUTE = Los argumentos FetchOrientation de SQL_FETCH_FIRST, SQL_FETCH_LAST y SQL_FETCH_ABSOLUTE se admiten en una llamada a SQLFetchScroll cuando el cursor es un cursor dinámico. (El conjunto de filas que se capturará es independiente de la posición actual del cursor).
SQL_CA1_RELATIVE = argumentos FetchOrientation de SQL_FETCH_PRIOR y SQL_FETCH_RELATIVE se admiten en una llamada a SQLFetchScroll cuando el cursor es un cursor dinámico. (El conjunto de filas que se capturará depende de la posición actual del cursor. Tenga en cuenta que esto está separado de SQL_FETCH_NEXT porque en un cursor de solo avance, solo se admite SQL_FETCH_NEXT).
SQL_CA1_BOOKMARK = se admite un argumento FetchOrientation de SQL_FETCH_BOOKMARK en una llamada a SQLFetchScroll cuando el cursor es un cursor dinámico.
SQL_CA1_LOCK_EXCLUSIVE = se admite un argumento LockType de SQL_LOCK_EXCLUSIVE en una llamada a SQLSetPos cuando el cursor es un cursor dinámico.
SQL_CA1_LOCK_NO_CHANGE = se admite un argumento LockType de SQL_LOCK_NO_CHANGE en una llamada a SQLSetPos cuando el cursor es un cursor dinámico.
SQL_CA1_LOCK_UNLOCK = se admite un argumento LockType de SQL_LOCK_UNLOCK en una llamada a SQLSetPos cuando el cursor es un cursor dinámico.
SQL_CA1_POS_POSITION = Se admite un argumento Operation de SQL_POSITION en una llamada a SQLSetPos cuando el cursor es un cursor dinámico.
SQL_CA1_POS_UPDATE = Se admite un argumento Operation de SQL_UPDATE en una llamada a SQLSetPos cuando el cursor es un cursor dinámico.
SQL_CA1_POS_DELETE = Se admite un argumento Operation de SQL_DELETE en una llamada a SQLSetPos cuando el cursor es un cursor dinámico.
SQL_CA1_POS_REFRESH = Se admite un argumento Operation de SQL_REFRESH en una llamada a SQLSetPos cuando el cursor es un cursor dinámico.
SQL_CA1_POSITIONED_UPDATE = se admite una instrucción UPDATE WHERE CURRENT OF SQL cuando el cursor es un cursor dinámico. (Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá esta opción como compatible).
SQL_CA1_POSITIONED_DELETE = se admite una instrucción DELETE WHERE CURRENT OF SQL cuando el cursor es un cursor dinámico. (Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá esta opción como compatible).
SQL_CA1_SELECT_FOR_UPDATE = se admite una instrucción SQL SELECT FOR UPDATE cuando el cursor es un cursor dinámico. (Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá esta opción como compatible).
SQL_CA1_BULK_ADD = Se admite un argumento Operation de SQL_ADD en una llamada a SQLBulkOperations cuando el cursor es un cursor dinámico.
SQL_CA1_BULK_UPDATE_BY_BOOKMARK = Se admite un argumento Operation de SQL_UPDATE_BY_BOOKMARK en una llamada a SQLBulkOperations cuando el cursor es un cursor dinámico.
SQL_CA1_BULK_DELETE_BY_BOOKMARK = Se admite un argumento Operation de SQL_DELETE_BY_BOOKMARK en una llamada a SQLBulkOperations cuando el cursor es un cursor dinámico.
SQL_CA1_BULK_FETCH_BY_BOOKMARK = Se admite un argumento Operation de SQL_FETCH_BY_BOOKMARK en una llamada a SQLBulkOperations cuando el cursor es un cursor dinámico.

Normalmente, un controlador conforme al nivel intermedio de SQL-92 devolverá las opciones de SQL_CA1_NEXT, SQL_CA1_ABSOLUTE y SQL_CA1_RELATIVE compatibles, ya que admite cursores desplazables a través de la instrucción SQL FETCH incrustada. Dado que esto no determina directamente la compatibilidad con SQL subyacente, es posible que no se admitan cursores desplazables, incluso para un controlador de nivel intermedio de SQL-92.
SQL_DYNAMIC_CURSOR_ATTRIBUTES2 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor dinámico compatible con el controlador. Esta máscara de bits contiene el segundo subconjunto de atributos; para el primer subconjunto, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES1.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA2_READ_ONLY_CONCURRENCY = Se admite un cursor dinámico de solo lectura, en el que no se permiten actualizaciones. (El atributo de instrucción SQL_ATTR_CONCURRENCY puede ser SQL_CONCUR_READ_ONLY para un cursor dinámico).
SQL_CA2_LOCK_CONCURRENCY = Cursor dinámico que usa el nivel más bajo de bloqueo suficiente para asegurarse de que se pueda actualizar la fila. (El atributo de instrucción SQL_ATTR_CONCURRENCY puede ser SQL_CONCUR_LOCK para un cursor dinámico). Estos bloqueos deben ser coherentes con el nivel de aislamiento de transacción establecido por el atributo de conexión SQL_ATTR_TXN_ISOLATION.
SQL_CA2_OPT_ROWVER_CONCURRENCY = Se admite un cursor dinámico que usa el control de simultaneidad optimista que compara las versiones de fila. (El atributo de instrucción SQL_ATTR_CONCURRENCY puede ser SQL_CONCUR_ROWVER para un cursor dinámico).
SQL_CA2_OPT_VALUES_CONCURRENCY = Se admite un cursor dinámico que usa el control de simultaneidad optimista que compara los valores. (El atributo de instrucción SQL_ATTR_CONCURRENCY puede ser SQL_CONCUR_VALUES para un cursor dinámico).
SQL_CA2_SENSITIVITY_ADDITIONS = Las filas agregadas son visibles para un cursor dinámico; el cursor puede desplazarse a esas filas. (Donde estas filas se agregan al cursor depende del controlador).
SQL_CA2_SENSITIVITY_DELETIONS = Las filas eliminadas ya no están disponibles para un cursor dinámico y no dejan un "agujero" en el conjunto de resultados; después de que el cursor dinámico se desplaza desde una fila eliminada, no puede volver a esa fila.
SQL_CA2_SENSITIVITY_UPDATES = Las actualizaciones de las filas son visibles para un cursor dinámico; si el cursor dinámico se desplaza desde y vuelve a una fila actualizada, los datos devueltos por el cursor son los datos actualizados, no los datos originales.
SQL_CA2_MAX_ROWS_SELECT = El atributo de instrucción SQL_ATTR_MAX_ROWS afecta a las instrucciones SELECT cuando el cursor es un cursor dinámico.
SQL_CA2_MAX_ROWS_INSERT = El atributo de instrucción SQL_ATTR_MAX_ROWS afecta a las instrucciones INSERT cuando el cursor es un cursor dinámico.
SQL_CA2_MAX_ROWS_DELETE = El atributo de instrucción SQL_ATTR_MAX_ROWS afecta a las instrucciones DELETE cuando el cursor es un cursor dinámico.
SQL_CA2_MAX_ROWS_UPDATE = El atributo de instrucción SQL_ATTR_MAX_ROWS afecta a las instrucciones UPDATE cuando el cursor es un cursor dinámico.
SQL_CA2_MAX_ROWS_CATALOG = El atributo de instrucción SQL_ATTR_MAX_ROWS afecta a los conjuntos de resultados CATALOG cuando el cursor es un cursor dinámico.
SQL_CA2_MAX_ROWS_AFFECTS_ALL = El atributo de instrucción SQL_ATTR_MAX_ROWS afecta a las instrucciones SELECT, INSERT, DELETE y UPDATE y a los conjuntos de resultados CATALOG , cuando el cursor es un cursor dinámico.
SQL_CA2_CRC_EXACT = El recuento exacto de filas está disponible en el campo de diagnóstico SQL_DIAG_CURSOR_ROW_COUNT cuando el cursor es un cursor dinámico.
SQL_CA2_CRC_APPROXIMATE = Hay disponible un recuento aproximado de filas en el campo de diagnóstico de SQL_DIAG_CURSOR_ROW_COUNT cuando el cursor es un cursor dinámico.
SQL_CA2_SIMULATE_NON_UNIQUE = El controlador no garantiza que las instrucciones de actualización o eliminación posicionadas simuladas afectarán solo a una fila cuando el cursor sea un cursor dinámico; es responsabilidad de la aplicación garantizar esto. (Si una instrucción afecta a más de una fila, SQLExecute o SQLExecDirect devuelve SQLSTATE 01001 [conflicto de operación de cursor].) Para establecer este comportamiento, la aplicación llama a SQLSetStmtAttr con el atributo SQL_ATTR_SIMULATE_CURSOR establecido en SQL_SC_NON_UNIQUE.
SQL_CA2_SIMULATE_TRY_UNIQUE = El controlador intenta garantizar que las instrucciones de actualización o eliminación posicionadas simuladas afectarán solo a una fila cuando el cursor sea un cursor dinámico. El controlador siempre ejecuta estas instrucciones, incluso si podrían afectar a más de una fila, como cuando no hay ninguna clave única. (Si una instrucción afecta a más de una fila, SQLExecute o SQLExecDirect devuelve SQLSTATE 01001 [conflicto de operación de cursor].) Para establecer este comportamiento, la aplicación llama a SQLSetStmtAttr con el atributo SQL_ATTR_SIMULATE_CURSOR establecido en SQL_SC_TRY_UNIQUE.
SQL_CA2_SIMULATE_UNIQUE = El controlador garantiza que las instrucciones de actualización o eliminación posicionadas simuladas afectarán solo a una fila cuando el cursor sea un cursor dinámico. Si el controlador no puede garantizar esto para una instrucción determinada, SQLExecDirect o SQLPrepare devuelven SQLSTATE 01001 (conflicto de operación de cursor). Para establecer este comportamiento, la aplicación llama a SQLSetStmtAttr con el atributo SQL_ATTR_SIMULATE_CURSOR establecido en SQL_SC_UNIQUE.
SQL_EXPRESSIONS_IN_ORDERBY 1.0 Cadena de caracteres: "Y" si el origen de datos admite expresiones en la lista ORDER BY ; "N" si no lo hace.
SQL_FILE_USAGE 2.0 Valor SQLUSMALLINT que indica cómo un controlador de un solo nivel trata directamente los archivos de un origen de datos:
SQL_FILE_NOT_SUPPORTED = El controlador no es un controlador de nivel único. Por ejemplo, un controlador ORACLE es un controlador de dos niveles.
SQL_FILE_TABLE = Un controlador de nivel único trata los archivos de un origen de datos como tablas. Por ejemplo, un controlador Xbase trata cada archivo Xbase como una tabla.
SQL_FILE_CATALOG = Un controlador de nivel único trata los archivos de un origen de datos como un catálogo. Por ejemplo, un controlador de Microsoft Access trata cada archivo de Microsoft Access como una base de datos completa.

Una aplicación puede usar esto para determinar cómo seleccionarán los datos los usuarios. Por ejemplo, los usuarios de Xbase suelen pensar en datos almacenados en archivos, mientras que los usuarios de ORACLE y Microsoft Access suelen pensar en los datos como almacenados en tablas.

Cuando un usuario selecciona un origen de datos Xbase, la aplicación podría mostrar el cuadro de diálogo Abrir archivo de Windows común; cuando el usuario selecciona un origen de datos de Microsoft Access o ORACLE, la aplicación podría mostrar un cuadro de diálogo Seleccionar tabla personalizado.
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor de solo avance admitido por el controlador. Esta máscara de bits contiene el primer subconjunto de atributos; para el segundo subconjunto, consulte SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA1_NEXT
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Para obtener descripciones de estas máscaras de bits, vea SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (y sustituya "cursor de solo avance" por "cursor dinámico" en las descripciones).
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor de solo avance admitido por el controlador. Esta máscara de bits contiene el segundo subconjunto de atributos; para el primer subconjunto, consulte SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Para obtener descripciones de estas máscaras de bits, vea SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (y sustituya "cursor de solo avance" por "cursor dinámico" en las descripciones).
SQL_GETDATA_EXTENSIONS 2.0 Máscara de bits SQLUINTEGER enumerando extensiones en SQLGetData.

Las máscaras de bits siguientes se usan junto con la marca para determinar qué extensiones comunes admite el controlador para SQLGetData:
SQL_GD_ANY_COLUMN = SQLGetData se puede llamar a para cualquier columna sin enlazar, incluidas las anteriores a la última columna enlazada. Tenga en cuenta que se debe llamar a las columnas en orden de número ascendente de columna a menos que también se devuelva SQL_GD_ANY_ORDER.
SQL_GD_ANY_ORDER = SQLGetData se puede llamar para columnas sin enlazar en cualquier orden. Tenga en cuenta que solo se puede llamar a SQLGetData para las columnas después de la última columna enlazada a menos que también se devuelva SQL_GD_ANY_COLUMN.
SQL_GD_BLOCK = SQLGetData se puede llamar para una columna sin enlazar en cualquier fila de un bloque (donde el tamaño del conjunto de filas es mayor que 1) de datos después de colocar en esa fila con SQLSetPos.
SQL_GD_BOUND = SQLGetData se puede llamar para las columnas enlazadas además de las columnas sin enlazar. Un controlador no puede devolver este valor a menos que también devuelva SQL_GD_ANY_COLUMN.
SQL_GD_OUTPUT_PARAMS = SQLGetData se puede llamar para devolver valores de parámetro de salida. Para obtener más información, vea el tema que trata sobre recuperar parámetros de salida mediante SQLGetData.

SQLGetData es necesario para devolver datos solo de columnas sin enlazar que se producen después de la última columna enlazada, se llama en orden de aumentar el número de columna y no están en una fila en un bloque de filas.

Si un controlador admite marcadores (longitud fija o longitud variable), debe admitir la llamada a SQLGetData en la columna 0. Esta compatibilidad es necesaria independientemente de lo que el controlador devuelva para una llamada a SQLGetInfo con el SQL_GETDATA_EXTENSIONS InfoType.
SQL_GROUP_BY 2.0 Valor SQLUSMALLINT que especifica la relación entre las columnas de la cláusula GROUP BY y las columnas no asignadas en la lista de selección:
SQL_GB_COLLATE = Se puede especificar una cláusula COLLATE al final de cada columna de agrupación. (ODBC 3.0)
no se admiten SQL_GB_NOT_SUPPORTED = cláusulas GROUP BY . (ODBC 2.0)
SQL_GB_GROUP_BY_EQUALS_SELECT = La cláusula GROUP BY debe contener todas las columnas no asignadas en la lista de selección. No puede contener ninguna otra columna. Por ejemplo, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT. (ODBC 2.0)
SQL_GB_GROUP_BY_CONTAINS_SELECT = La cláusula GROUP BY debe contener todas las columnas no asignadas en la lista de selección. Puede contener columnas que no están en la lista de selección. Por ejemplo, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)
SQL_GB_NO_RELATION = Las columnas de la cláusula GROUP BY y la lista de selección no están relacionadas. El significado de las columnas no agrupadas y no agrupadas en la lista de selección depende del origen de datos. Por ejemplo, SELECT DEPT, SALARY FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá la opción SQL_GB_GROUP_BY_EQUALS_SELECT como se admite. Un controlador compatible con el nivel completo de SQL-92 siempre devolverá la opción SQL_GB_COLLATE como se admite. Si no se admite ninguna de las opciones, el origen de datos no admite la cláusula GROUP BY .
SQL_IDENTIFIER_CASE 1.0 Un valor SQLUSMALLINT como se indica a continuación:
SQL_IC_UPPER = Los identificadores de SQL no distinguen mayúsculas de minúsculas y se almacenan en mayúsculas en el catálogo del sistema.
SQL_IC_LOWER = Los identificadores de SQL no distinguen mayúsculas de minúsculas y se almacenan en minúsculas en el catálogo del sistema.
SQL_IC_SENSITIVE = Los identificadores de SQL distinguen mayúsculas de minúsculas y se almacenan en mayúsculas y minúsculas mixtas en el catálogo del sistema.
SQL_IC_MIXED = Los identificadores de SQL no distinguen mayúsculas de minúsculas y se almacenan en mayúsculas y minúsculas en el catálogo del sistema.

Dado que los identificadores de SQL-92 nunca distinguen mayúsculas de minúsculas, un controlador que se ajusta estrictamente a SQL-92 (cualquier nivel) nunca devolverá la opción SQL_IC_SENSITIVE como se admite.
SQL_IDENTIFIER_QUOTE_CHAR 1.0 Cadena de caracteres que se usa como delimitador inicial y final de un identificador entre comillas (delimitado) en instrucciones SQL. (Los identificadores pasados como argumentos a las funciones ODBC no tienen que estar entre comillas). Si el origen de datos no admite identificadores entre comillas, se devuelve un valor en blanco.

Esta cadena de caracteres también se puede usar para entrecomillar argumentos de función de catálogo cuando el atributo de conexión SQL_ATTR_METADATA_ID se establece en SQL_TRUE.

Dado que el carácter de comilla del identificador en SQL-92 es la comilla doble ("), un controlador que se ajusta estrictamente a SQL-92 siempre devolverá el carácter de comilla doble.
SQL_INDEX_KEYWORDS 3,0 Máscara de bits SQLUINTEGER que enumera las palabras clave de la instrucción CREATE INDEX admitida por el controlador:
SQL_IK_NONE = No se admite ninguna de las palabras clave.
se admite SQL_IK_ASC = palabra clave ASC.
se admite SQL_IK_DESC = palabra clave DESC.
SQL_IK_ALL = Se admiten todas las palabras clave.

Para ver si se admite la instrucción CREATE INDEX, una aplicación llama a SQLGetInfo con el tipo de información SQL_DLL_INDEX.
SQL_INFO_SCHEMA_VIEWS 3,0 Máscara de bits SQLUINTEGER que enumera las vistas de la INFORMATION_SCHEMA compatibles con el controlador. Las vistas de y el contenido de INFORMATION_SCHEMA se definen en SQL-92.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué vistas se admiten:
SQL_ISV_ASSERTIONS = Identifica las aserciones del catálogo que pertenecen a un usuario determinado. (Nivel completo)
SQL_ISV_CHARACTER_SETS = Identifica los conjuntos de caracteres del catálogo a los que puede acceder un usuario determinado. (Nivel intermedio)
SQL_ISV_CHECK_CONSTRAINTS = Identifica las restricciones CHECK que pertenecen a un usuario determinado. (Nivel intermedio)
SQL_ISV_COLLATIONS = Identifica las intercalaciones de caracteres del catálogo al que puede acceder un usuario determinado. (Nivel completo)
SQL_ISV_COLUMN_DOMAIN_USAGE = Identifica las columnas del catálogo que dependen de los dominios definidos en el catálogo y que pertenecen a un usuario determinado. (Nivel intermedio)
SQL_ISV_COLUMN_PRIVILEGES = Identifica los privilegios de las columnas de tablas persistentes que están disponibles o concedidos por un usuario determinado. (Nivel de transición de FIPS)
SQL_ISV_COLUMNS = Identifica las columnas de las tablas persistentes a las que puede acceder un usuario determinado. (Nivel de transición de FIPS)
SQL_ISV_CONSTRAINT_COLUMN_USAGE = Similar a CONSTRAINT_TABLE_USAGE vista, las columnas se identifican para las distintas restricciones que pertenecen a un usuario determinado. (Nivel intermedio)
SQL_ISV_CONSTRAINT_TABLE_USAGE = Identifica las tablas que usan las restricciones (referenciales, únicas y aserciones) y que son propiedad de un usuario determinado. (Nivel intermedio)
SQL_ISV_DOMAIN_CONSTRAINTS = Identifica las restricciones de dominio (de los dominios del catálogo) a las que puede acceder un usuario determinado. (Nivel intermedio)
SQL_ISV_DOMAINS = Identifica los dominios definidos en un catálogo al que puede acceder el usuario. (Nivel intermedio)
SQL_ISV_KEY_COLUMN_USAGE = Identifica las columnas definidas en el catálogo que están restringidas como claves por un usuario determinado. (Nivel intermedio)
SQL_ISV_REFERENTIAL_CONSTRAINTS = Identifica las restricciones referenciales que pertenecen a un usuario determinado. (Nivel intermedio)
SQL_ISV_SCHEMATA = Identifica los esquemas que pertenecen a un usuario determinado. (Nivel intermedio)
SQL_ISV_SQL_LANGUAGES = Identifica los niveles de conformidad, las opciones y los dialectos de SQL admitidos por la implementación de SQL. (Nivel intermedio)
SQL_ISV_TABLE_CONSTRAINTS = Identifica las restricciones de tabla que son propiedad de un usuario determinado. (Nivel intermedio)
SQL_ISV_TABLE_PRIVILEGES = Identifica los privilegios de las tablas persistentes que están disponibles o concedidos por un usuario determinado. (Nivel de transición de FIPS)
SQL_ISV_TABLES = Identifica las tablas persistentes definidas en un catálogo al que puede acceder un usuario determinado. (Nivel de transición de FIPS)
SQL_ISV_TRANSLATIONS = Identifica las traducciones de caracteres del catálogo al que puede acceder un usuario determinado. (Nivel completo)
SQL_ISV_USAGE_PRIVILEGES = Identifica los privilegios USAGE de los objetos de catálogo que están disponibles o que pertenecen a un usuario determinado. (Nivel de transición de FIPS)
SQL_ISV_VIEW_COLUMN_USAGE = Identifica las columnas en las que dependen las vistas del catálogo que pertenecen a un usuario determinado. (Nivel intermedio)
SQL_ISV_VIEW_TABLE_USAGE = Identifica las tablas en las que dependen las vistas del catálogo que pertenecen a un usuario determinado. (Nivel intermedio)
SQL_ISV_VIEWS = Identifica las tablas vistas definidas en este catálogo a las que puede acceder un usuario determinado. (Nivel de transición de FIPS)
SQL_INSERT_STATEMENT 3,0 Máscara de bits SQLUINTEGER que indica compatibilidad con instrucciones INSERT :
SQL_IS_INSERT_LITERALS
SQL_IS_INSERT_SEARCHED
SQL_IS_SELECT_INTO

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá todas estas opciones como se admite.
SQL_INTEGRITY 1.0 Una cadena de caracteres: "Y" si el origen de datos admite el Recurso de mejora de integridad; "N" si no lo hace.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_ODBC_SQL_OPT_IEF InfoType de ODBC 2.0.
SQL_KEYSET_CURSOR_ATTRIBUTES1 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor de conjunto de claves compatible con el controlador. Esta máscara de bits contiene el primer subconjunto de atributos; para el segundo subconjunto, consulte SQL_KEYSET_CURSOR_ATTRIBUTES2.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Para obtener descripciones de estas máscaras de bits, vea SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (y sustituya "cursor controlado por conjuntos de claves" para "cursor dinámico" en las descripciones).

Normalmente, un controlador conforme al nivel intermedio de SQL-92 devolverá las opciones de SQL_CA1_NEXT, SQL_CA1_ABSOLUTE y SQL_CA1_RELATIVE compatibles, ya que el controlador admite cursores desplazables a través de la instrucción SQL FETCH incrustada. Dado que esto no determina directamente la compatibilidad con SQL subyacente, es posible que no se admitan cursores desplazables, incluso para un controlador de nivel intermedio de SQL-92.
SQL_KEYSET_CURSOR_ATTRIBUTES2 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor de conjunto de claves compatible con el controlador. Esta máscara de bits contiene el segundo subconjunto de atributos; para el primer subconjunto, consulte SQL_KEYSET_CURSOR_ATTRIBUTES1.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Para obtener descripciones de estas máscaras de bits, vea SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (y sustituya "cursor controlado por conjuntos de claves" para "cursor dinámico" en las descripciones).
SQL_KEYWORDS 2.0 Cadena de caracteres que contiene una lista separada por comas de todas las palabras clave específicas del origen de datos. Esta lista no contiene palabras clave específicas de ODBC o palabras clave usadas por el origen de datos y ODBC. Esta lista representa todas las palabras clave reservadas; Las aplicaciones interoperables no deben usar estas palabras en nombres de objeto.

Para obtener una lista de palabras clave ODBC, vea Palabras clave reservadas en el apéndice C: Gramática sql. El valor #define SQL_ODBC_KEYWORDS contiene una lista separada por comas de palabras clave ODBC.
SQL_LIKE_ESCAPE_CLAUSE 2.0 Cadena de caracteres: "Y" si el origen de datos admite un carácter de escape para el carácter de porcentaje (%) y carácter de subrayado (_) en un predicado LIKE y el controlador admite la sintaxis ODBC para definir un carácter de escape de predicado LIKE ; De lo contrario, "N".
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 3,0 Valor SQLUINTEGER que especifica el número máximo de instrucciones simultáneas activas en modo asincrónico que el controlador puede admitir en una conexión determinada. Si no hay ningún límite específico o el límite es desconocido, este valor es cero.
SQL_MAX_BINARY_LITERAL_LEN 2.0 Valor SQLUINTEGER que especifica la longitud máxima (número de caracteres hexadecimales, excepto el prefijo literal y el sufijo devueltos por SQLGetTypeInfo) de un literal binario en una instrucción SQL. Por ejemplo, el literal binario 0xFFAA tiene una longitud de 4. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.
SQL_MAX_CATALOG_NAME_LEN 1.0 Valor SQLUSMALLINT que especifica la longitud máxima de un nombre de catálogo en el origen de datos. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.

Un controlador de nivel completo de FIPS devolverá al menos 128.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_MAX_QUALIFIER_NAME_LEN InfoType de ODBC 2.0.
SQL_MAX_CHAR_LITERAL_LEN 2.0 Valor SQLUINTEGER que especifica la longitud máxima (número de caracteres, excepto el prefijo literal y el sufijo devuelto por SQLGetTypeInfo) de un literal de carácter en una instrucción SQL. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.
SQL_MAX_COLUMN_NAME_LEN 1.0 Valor SQLUSMALLINT que especifica la longitud máxima de un nombre de columna en el origen de datos. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 18. Un controlador conforme al nivel intermedio fiPS devolverá al menos 128.
SQL_MAX_COLUMNS_IN_GROUP_BY 2.0 Valor SQLUSMALLINT que especifica el número máximo de columnas permitidas en una cláusula GROUP BY . Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 6. Un controlador de nivel intermedio de FIPS devolverá al menos 15.
SQL_MAX_COLUMNS_IN_INDEX 2.0 Valor SQLUSMALLINT que especifica el número máximo de columnas permitidas en un índice. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.
SQL_MAX_COLUMNS_IN_ORDER_BY 2.0 Valor SQLUSMALLINT que especifica el número máximo de columnas permitidas en una cláusula ORDER BY . Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 6. Un controlador de nivel intermedio de FIPS devolverá al menos 15.
SQL_MAX_COLUMNS_IN_SELECT 2.0 Valor SQLUSMALLINT que especifica el número máximo de columnas permitidas en una lista de selección. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 100. Un controlador conforme al nivel intermedio fiPS devolverá al menos 250.
SQL_MAX_COLUMNS_IN_TABLE 2.0 Valor SQLUSMALLINT que especifica el número máximo de columnas permitidas en una tabla. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 100. Un controlador conforme al nivel intermedio fiPS devolverá al menos 250.
SQL_MAX_CONCURRENT_ACTIVITIES 1.0 Valor SQLUSMALLINT que especifica el número máximo de instrucciones activas que el controlador puede admitir para una conexión. Una instrucción se define como activa si tiene resultados pendientes, con el término "resultados" que significa filas de una operación SELECT o filas afectadas por una operación INSERT, UPDATE o DELETE (por ejemplo, un recuento de filas) o si se encuentra en un estado NEED_DATA. Este valor puede reflejar una limitación impuesta por el controlador o el origen de datos. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_ACTIVE_STATEMENTS InfoType de ODBC 2.0.
SQL_MAX_CURSOR_NAME_LEN 1.0 Valor SQLUSMALLINT que especifica la longitud máxima de un nombre de cursor en el origen de datos. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 18. Un controlador conforme al nivel intermedio fiPS devolverá al menos 128.
SQL_MAX_DRIVER_CONNECTIONS 1.0 Valor SQLUSMALLINT que especifica el número máximo de conexiones activas que el controlador puede admitir para un entorno. Este valor puede reflejar una limitación impuesta por el controlador o el origen de datos. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_ACTIVE_CONNECTIONS InfoType de ODBC 2.0.
SQL_MAX_IDENTIFIER_LEN 3,0 SqlUSMALLINT que indica el tamaño máximo en caracteres que admite el origen de datos para los nombres definidos por el usuario.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 18. Un controlador conforme al nivel intermedio fiPS devolverá al menos 128.
SQL_MAX_INDEX_SIZE 2.0 Valor SQLUINTEGER que especifica el número máximo de bytes permitidos en los campos combinados de un índice. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.
SQL_MAX_PROCEDURE_NAME_LEN 1.0 Valor SQLUSMALLINT que especifica la longitud máxima de un nombre de procedimiento en el origen de datos. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.
SQL_MAX_ROW_SIZE 2.0 Valor SQLUINTEGER que especifica la longitud máxima de una sola fila de una tabla. Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 2000. Un controlador conforme al nivel intermedio de FIPS devolverá al menos 8000.
SQL_MAX_ROW_SIZE_INCLUDES_LONG 3,0 Cadena de caracteres: "Y" si el tamaño máximo de fila devuelto para el tipo de información SQL_MAX_ROW_SIZE incluye la longitud de todas las columnas de SQL_LONGVARCHAR y SQL_LONGVARBINARY de la fila; De lo contrario, "N".
SQL_MAX_SCHEMA_NAME_LEN 1.0 Valor SQLUSMALLINT que especifica la longitud máxima de un nombre de esquema en el origen de datos. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 18. Un controlador conforme al nivel intermedio fiPS devolverá al menos 128.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_MAX_OWNER_NAME_LEN InfoType de ODBC 2.0.
SQL_MAX_STATEMENT_LEN 2.0 Valor SQLUINTEGER que especifica la longitud máxima (número de caracteres, incluido el espacio en blanco) de una instrucción SQL. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.
SQL_MAX_TABLE_NAME_LEN 1.0 Valor SQLUSMALLINT que especifica la longitud máxima de un nombre de tabla en el origen de datos. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 18. Un controlador conforme al nivel intermedio fiPS devolverá al menos 128.
SQL_MAX_TABLES_IN_SELECT 2.0 Valor SQLUSMALLINT que especifica el número máximo de tablas permitidas en la cláusula FROM de una instrucción SELECT . Si no hay ningún límite especificado o el límite es desconocido, este valor se establece en cero.

Un controlador conforme al nivel de entrada fiPS devolverá al menos 15. Un controlador conforme al nivel intermedio fiPS devolverá al menos 50.
SQL_MAX_USER_NAME_LEN 2.0 Valor SQLUSMALLINT que especifica la longitud máxima de un nombre de usuario en el origen de datos. Si no hay ninguna longitud máxima o se desconoce la longitud, este valor se establece en cero.
SQL_MULT_RESULT_SETS 1.0 Cadena de caracteres: "Y" si el origen de datos admite varios conjuntos de resultados, "N" si no lo hace.

Para obtener más información sobre varios conjuntos de resultados, vea Varios resultados.
SQL_MULTIPLE_ACTIVE_TXN 1.0 Cadena de caracteres: "Y" si el controlador admite más de una transacción activa al mismo tiempo, "N" si solo una transacción puede estar activa en cualquier momento.

La información devuelta para este tipo de información no se aplica en el caso de transacciones distribuidas.
SQL_NEED_LONG_DATA_LEN 2.0 Cadena de caracteres: "Y" si el origen de datos necesita la longitud de un valor de datos largo (el tipo de datos es SQL_LONGVARCHAR, SQL_LONGVARBINARY o un tipo de datos largo específico del origen de datos) antes de que ese valor se envíe al origen de datos, "N" si no lo hace. Para obtener más información, vea Función SQLBindParameter y función SQLSetPos.
SQL_NON_NULLABLE_COLUMNS 1.0 Valor SQLUSMALLINT que especifica si el origen de datos admite NOT NULL en columnas:
SQL_NNC_NULL = Todas las columnas deben tener valores NULL.
SQL_NNC_NON_NULL = Las columnas no pueden ser nullables. (El origen de datos admite el Restricción de columna NOT NULL en instrucciones CREATE TABLE ).

Un controlador compatible con el nivel de entrada de SQL-92 devolverá SQL_NNC_NON_NULL.
SQL_NULL_COLLATION 2.0 Valor SQLUSMALLINT que especifica dónde se ordenan las NULL en un conjunto de resultados:
SQL_NC_END = LAS NUL se ordenan al final del conjunto de resultados, independientemente de las palabras clave ASC o DESC.
SQL_NC_HIGH = NCL se ordenan en el extremo superior del conjunto de resultados, en función de las palabras clave ASC o DESC.
SQL_NC_LOW = NCL se ordenan en el extremo inferior del conjunto de resultados, en función de las palabras clave ASC o DESC.
SQL_NC_START = LAS NUL se ordenan al principio del conjunto de resultados, independientemente de las palabras clave ASC o DESC.
SQL_NUMERIC_FUNCTIONS 1.0 Nota: El tipo de información se introdujo en ODBC 1.0; cada máscara de bits se etiqueta con la versión en la que se introdujo.

Máscara de bits SQLUINTEGER que enumera las funciones numéricas escalares admitidas por el controlador y el origen de datos asociado.

Las máscaras de bits siguientes se usan para determinar qué funciones numéricas se admiten:
SQL_FN_NUM_ABS (ODBC 1.0)
SQL_FN_NUM_ACOS (ODBC 1.0)
SQL_FN_NUM_ASIN (ODBC 1.0)
SQL_FN_NUM_ATAN (ODBC 1.0)
SQL_FN_NUM_ATAN2 (ODBC 1.0)
SQL_FN_NUM_CEILING (ODBC 1.0)
SQL_FN_NUM_COS (ODBC 1.0)
SQL_FN_NUM_COT (ODBC 1.0)
SQL_FN_NUM_DEGREES (ODBC 2.0)
SQL_FN_NUM_EXP (ODBC 1.0)
SQL_FN_NUM_FLOOR (ODBC 1.0)
SQL_FN_NUM_LOG (ODBC 1.0)
SQL_FN_NUM_LOG10 (ODBC 2.0)
SQL_FN_NUM_MOD (ODBC 1.0)
SQL_FN_NUM_PI (ODBC 1.0)
SQL_FN_NUM_POWER (ODBC 2.0)
SQL_FN_NUM_RADIANS (ODBC 2.0)
SQL_FN_NUM_RAND (ODBC 1.0)
SQL_FN_NUM_ROUND (ODBC 2.0)
SQL_FN_NUM_SIGN (ODBC 1.0)
SQL_FN_NUM_SIN (ODBC 1.0)
SQL_FN_NUM_SQRT (ODBC 1.0)
SQL_FN_NUM_TAN (ODBC 1.0)
SQL_FN_NUM_TRUNCATE (ODBC 2.0)
SQL_ODBC_INTERFACE_CONFORMANCE 3,0 Valor SQLUINTEGER que indica el nivel de la interfaz ODBC 3*.x* con la que cumple el controlador.

SQL_OIC_CORE: el nivel mínimo con el que se espera que cumplan todos los controladores ODBC. Este nivel incluye elementos de interfaz básicos, como funciones de conexión, funciones para preparar y ejecutar una instrucción SQL, funciones básicas de metadatos del conjunto de resultados, funciones de catálogo básicas, etc.
SQL_OIC_LEVEL1: nivel que incluye la funcionalidad básica del nivel de cumplimiento de estándares, además de cursores desplazables, marcadores, actualizaciones y eliminaciones posicionadas, etc.
SQL_OIC_LEVEL2: un nivel que incluye la funcionalidad de nivel 1 estándar de cumplimiento, además de características avanzadas como cursores confidenciales; actualizar, eliminar y actualizar por marcadores; compatibilidad con procedimientos almacenados; funciones de catálogo para claves principales y externas; compatibilidad con varios catálogos; y así sucesivamente.

Para obtener más información, vea Niveles de conformidad de interfaz.
SQL_ODBC_VER 1.0 Cadena de caracteres con la versión de ODBC a la que se ajusta el Administrador de controladores. La versión tiene el formato ##.#.#.0000, donde los dos primeros dígitos son la versión principal y los dos dígitos siguientes son la versión secundaria. Esto solo se implementa en el Administrador de controladores.
SQL_OJ_CAPABILITIES 2,01 Máscara de bits SQLUINTEGER que enumera los tipos de combinaciones externas compatibles con el controlador y el origen de datos. Las máscaras de bits siguientes se usan para determinar qué tipos se admiten:
SQL_OJ_LEFT = Se admiten combinaciones externas izquierdas.
SQL_OJ_RIGHT = Se admiten combinaciones externas derechas.
SQL_OJ_FULL = Se admiten combinaciones externas completas.
SQL_OJ_NESTED = Se admiten combinaciones externas anidadas.
SQL_OJ_NOT_ORDERED = Los nombres de columna de la cláusula ON de la combinación externa no tienen que estar en el mismo orden que sus respectivos nombres de tabla en la cláusula OUTER JOIN .
SQL_OJ_INNER = La tabla interna (la tabla derecha en una combinación externa izquierda o la tabla izquierda de una combinación externa derecha) también se puede usar en una combinación interna. Esto no se aplica a combinaciones externas completas, que no tienen una tabla interna.
SQL_OJ_ALL_COMPARISON_OPS = El operador de comparación de la cláusula ON puede ser cualquiera de los operadores de comparación ODBC. Si no se establece este bit, solo se puede usar el operador de comparación igual (=) en combinaciones externas.

Si no se admite ninguna de estas opciones, no se admite ninguna cláusula de combinación externa.

Para obtener información sobre la compatibilidad de los operadores de combinación relacional en una instrucción SELECT, tal como se define en SQL-92, consulte SQL_SQL92_RELATIONAL_JOIN_OPERATORS.
SQL_ORDER_BY_COLUMNS_IN_SELECT 2.0 Cadena de caracteres: "Y" si las columnas de la cláusula ORDER BY deben estar en la lista select; de lo contrario, "N".
SQL_PARAM_ARRAY_ROW_COUNTS 3,0 SqlUINTEGER enumera las propiedades del controlador con respecto a la disponibilidad de recuentos de filas en una ejecución con parámetros. Tiene los siguientes valores:
SQL_PARC_BATCH = Los recuentos de filas individuales están disponibles para cada conjunto de parámetros. Esto es conceptualmente equivalente al controlador que genera un lote de instrucciones SQL, uno para cada parámetro establecido en la matriz. La información de error extendida se puede recuperar mediante el campo descriptor SQL_PARAM_STATUS_PTR.
SQL_PARC_NO_BATCH = Hay solo un recuento de filas disponible, que es el recuento de filas acumulado resultante de la ejecución de la instrucción para toda la matriz de parámetros. Esto es conceptualmente equivalente a tratar la instrucción junto con la matriz de parámetros completa como una unidad atómica. Los errores se controlan igual que si se ejecutara una instrucción.
SQL_PARAM_ARRAY_SELECTS 3,0 SqlUINTEGER enumera las propiedades del controlador con respecto a la disponibilidad de los conjuntos de resultados en una ejecución con parámetros. Tiene los siguientes valores:
SQL_PAS_BATCH = Hay un conjunto de resultados disponible por conjunto de parámetros. Esto es conceptualmente equivalente al controlador que genera un lote de instrucciones SQL, uno para cada parámetro establecido en la matriz.
SQL_PAS_NO_BATCH = Solo hay un conjunto de resultados disponible, que representa el conjunto de resultados acumulado resultante de la ejecución de la instrucción para la matriz completa de parámetros. Esto es conceptualmente equivalente a tratar la instrucción junto con la matriz de parámetros completa como una unidad atómica.
SQL_PAS_NO_SELECT = Un controlador no permite ejecutar una instrucción de generación del conjunto de resultados con una matriz de parámetros.
SQL_POS_OPERATIONS 2.0 Máscara de bits SQLINTEGER que enumera las operaciones de compatibilidad en SQLSetPos.

Las máscaras de bits siguientes se usan junto con la marca para determinar qué opciones se admiten.
SQL_POS_POSITION (ODBC 2.0)
SQL_POS_REFRESH (ODBC 2.0)
SQL_POS_UPDATE (ODBC 2.0)
SQL_POS_DELETE (ODBC 2.0)
SQL_POS_ADD (ODBC 2.0)
SQL_PROCEDURE_TERM 1.0 Cadena de caracteres con el nombre del proveedor del origen de datos para un procedimiento; por ejemplo, "procedimiento de base de datos", "procedimiento almacenado", "procedimiento", "paquete" o "consulta almacenada".
SQL_PROCEDURES 1.0 Cadena de caracteres: "Y" si el origen de datos admite procedimientos y el controlador admite la sintaxis de invocación del procedimiento ODBC; De lo contrario, "N".
SQL_QUOTED_IDENTIFIER_CASE 2.0 Un valor SQLUSMALLINT como se indica a continuación:
SQL_IC_UPPER = Los identificadores entre comillas de SQL no distinguen mayúsculas de minúsculas y se almacenan en mayúsculas en el catálogo del sistema.
SQL_IC_LOWER = Los identificadores entre comillas de SQL no distinguen mayúsculas de minúsculas y se almacenan en minúsculas en el catálogo del sistema.
SQL_IC_SENSITIVE = Los identificadores entre comillas de SQL distinguen mayúsculas de minúsculas y se almacenan en mayúsculas y minúsculas mixtas en el catálogo del sistema. (En una base de datos compatible con SQL-92, los identificadores entre comillas siempre distinguen mayúsculas de minúsculas).
SQL_IC_MIXED = Los identificadores entre comillas de SQL no distinguen mayúsculas de minúsculas y se almacenan en mayúsculas y minúsculas en el catálogo del sistema.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá SQL_IC_SENSITIVE.
SQL_ROW_UPDATES 1.0 Cadena de caracteres: "Y" si un cursor mixto o controlado por conjuntos de claves mantiene las versiones de fila o los valores de todas las filas capturadas y, por tanto, puede detectar las actualizaciones realizadas en una fila por cualquier usuario desde que la fila se capturó por última vez. (Esto solo se aplica a las actualizaciones, no a las eliminaciones o inserciones). El controlador puede devolver la marca SQL_ROW_UPDATED a la matriz de estado de fila cuando se llama a SQLFetchScroll . De lo contrario, "N".
SQL_SCHEMA_TERM 1.0 Cadena de caracteres con el nombre del proveedor del origen de datos para un esquema; por ejemplo, "owner", "Authorization ID" o "Schema".

La cadena de caracteres se puede devolver en mayúsculas, minúsculas o minúsculas mixtas.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá "schema".

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_OWNER_TERM InfoType de ODBC 2.0.
SQL_SCHEMA_USAGE 2.0 Máscara de bits SQLUINTEGER que enumera las instrucciones en las que se pueden usar esquemas:
SQL_SU_DML_STATEMENTS = Los esquemas se admiten en todas las instrucciones del lenguaje de manipulación de datos: SELECT, INSERT, UPDATE, DELETE y, si se admite, SELECT FOR UPDATE y instrucciones update y delete posicionadas.
SQL_SU_PROCEDURE_INVOCATION = Los esquemas se admiten en la instrucción de invocación de procedimiento ODBC.
SQL_SU_TABLE_DEFINITION = Los esquemas se admiten en todas las instrucciones de definición de tabla: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE y DROP VIEW.
SQL_SU_INDEX_DEFINITION = Los esquemas se admiten en todas las instrucciones de definición de índice: CREATE INDEX y DROP INDEX.
SQL_SU_PRIVILEGE_DEFINITION = Los esquemas se admiten en todas las instrucciones de definición de privilegios: GRANT y REVOKE.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá las opciones de SQL_SU_DML_STATEMENTS, SQL_SU_TABLE_DEFINITION y SQL_SU_PRIVILEGE_DEFINITION, según se admita.

Se ha cambiado el nombre de InfoType para ODBC 3.0 de la SQL_OWNER_USAGE InfoType de ODBC 2.0.
SQL_SCROLL_OPTIONS 1.0 Nota: El tipo de información se introdujo en ODBC 1.0; cada máscara de bits se etiqueta con la versión en la que se introdujo.

Máscara de bits SQLUINTEGER que enumera las opciones de desplazamiento admitidas para cursores desplazables.

Las siguientes máscaras de bits se usan para determinar qué opciones se admiten:
SQL_SO_FORWARD_ONLY = El cursor solo se desplaza hacia delante. (ODBC 1.0)
SQL_SO_STATIC = Los datos del conjunto de resultados son estáticos. (ODBC 2.0)
SQL_SO_KEYSET_DRIVEN = El controlador guarda y usa las claves para cada fila del conjunto de resultados. (ODBC 1.0)
SQL_SO_DYNAMIC = El controlador mantiene las claves para cada fila del conjunto de filas (el tamaño del conjunto de claves es el mismo que el tamaño del conjunto de filas). (ODBC 1.0)
SQL_SO_MIXED = El controlador mantiene las claves para cada fila del conjunto de claves y el tamaño del conjunto de claves es mayor que el tamaño del conjunto de filas. El cursor está controlado por conjuntos de claves dentro del conjunto de claves y dinámico fuera del conjunto de claves. (ODBC 1.0)

Para obtener información sobre los cursores desplazables, vea Cursores desplazables.
SQL_SEARCH_PATTERN_ESCAPE 1.0 Cadena de caracteres que especifica lo que admite el controlador como carácter de escape que permite el uso del carácter de subrayado de metacharacters de coincidencia de patrón (_) y signo de porcentaje (%) como caracteres válidos en los patrones de búsqueda. Este carácter de escape solo se aplica a esos argumentos de función de catálogo que admiten cadenas de búsqueda. Si esta cadena está vacía, el controlador no admite un carácter de escape de patrón de búsqueda.

Dado que este tipo de información no indica compatibilidad general con el carácter de escape en el predicado LIKE , SQL-92 no incluye requisitos para esta cadena de caracteres.

Este InfoType se limita a las funciones de catálogo. Para obtener una descripción del uso del carácter de escape en cadenas de patrón de búsqueda, vea Argumentos de valor de patrón.
SQL_SERVER_NAME 1.0 Cadena de caracteres con el nombre real del servidor específico del origen de datos; útil cuando se usa un nombre de origen de datos durante SQLConnect, SQLDriverConnect y SQLBrowseConnect.
SQL_SPECIAL_CHARACTERS 2.0 Cadena de caracteres que contiene todos los caracteres especiales (es decir, todos los caracteres excepto z, A a Z, 0 a 9 y subrayado) que se pueden usar en un nombre de identificador, como un nombre de tabla, un nombre de columna o un nombre de índice, en el origen de datos. Por ejemplo, "#$^". Si un identificador contiene uno o varios de estos caracteres, el identificador debe ser un identificador delimitado.
SQL_SQL_CONFORMANCE 3,0 Valor SQLUINTEGER que indica el nivel de SQL-92 admitido por el controlador:
SQL_SC_SQL92_ENTRY = compatible con SQL-92 de nivel de entrada.
SQL_SC_FIPS127_2_TRANSITIONAL = compatible con el nivel de transición FIPS 127-2.
SQL_SC_SQL92_FULL = compatible con SQL-92 de nivel completo.
SQL_SC_ SQL92_INTERMEDIATE = compatible con SQL-92 de nivel intermedio.
SQL_SQL92_DATETIME_FUNCTIONS 3,0 Máscara de bits SQLUINTEGER que enumera las funciones escalares datetime compatibles con el controlador y el origen de datos asociado, tal como se define en SQL-92.

Las máscaras de bits siguientes se usan para determinar qué funciones datetime se admiten:
SQL_SDF_CURRENT_DATE
SQL_SDF_CURRENT_TIME
SQL_SDF_CURRENT_TIMESTAMP
SQL_SQL92_FOREIGN_KEY_DELETE_RULE 3,0 Máscara de bits SQLUINTEGER que enumera las reglas admitidas para una clave externa en una instrucción DELETE , tal como se define en SQL-92.

Las máscaras de bits siguientes se usan para determinar qué cláusulas admite el origen de datos:
SQL_SFKD_CASCADE
SQL_SFKD_NO_ACTION
SQL_SFKD_SET_DEFAULT
SQL_SFKD_SET_NULL

Un controlador compatible con el nivel de transición de FIPS siempre devolverá todas estas opciones como se admite.
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 3,0 Máscara de bits SQLUINTEGER que enumera las reglas admitidas para una clave externa en una instrucción UPDATE , tal como se define en SQL-92.

Las máscaras de bits siguientes se usan para determinar qué cláusulas admite el origen de datos:
SQL_SFKU_CASCADE
SQL_SFKU_NO_ACTION
SQL_SFKU_SET_DEFAULT
SQL_SFKU_SET_NULL

Un controlador compatible con el nivel completo de SQL-92 siempre devolverá todas estas opciones como se admite.
SQL_SQL92_GRANT 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas admitidas en la instrucción GRANT , tal como se define en SQL-92.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué cláusulas admite el origen de datos:
SQL_SG_DELETE_TABLE (nivel de entrada)
SQL_SG_INSERT_COLUMN (nivel intermedio)
SQL_SG_INSERT_TABLE (nivel de entrada)
SQL_SG_REFERENCES_TABLE (nivel de entrada)
SQL_SG_REFERENCES_COLUMN (nivel de entrada)
SQL_SG_SELECT_TABLE (nivel de entrada)
SQL_SG_UPDATE_COLUMN (nivel de entrada)
SQL_SG_UPDATE_TABLE (nivel de entrada)
SQL_SG_USAGE_ON_DOMAIN (nivel de transición de FIPS)
SQL_SG_USAGE_ON_CHARACTER_SET (nivel de transición de FIPS)
SQL_SG_USAGE_ON_COLLATION (nivel de transición de FIPS)
SQL_SG_USAGE_ON_TRANSLATION (nivel de transición de FIPS)
SQL_SG_WITH_GRANT_OPTION (nivel de entrada)
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 3,0 Máscara de bits SQLUINTEGER que enumera las funciones escalares de valor numérico compatibles con el controlador y el origen de datos asociado, tal como se define en SQL-92.

Las máscaras de bits siguientes se usan para determinar qué funciones numéricas se admiten:
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 3,0 Máscara de bits SQLUINTEGER que enumera los predicados admitidos en una instrucción SELECT , tal como se define en SQL-92.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué opciones admite el origen de datos:
SQL_SP_BETWEEN (nivel de entrada)
SQL_SP_COMPARISON (nivel de entrada)
SQL_SP_EXISTS (nivel de entrada)
SQL_SP_IN (nivel de entrada)
SQL_SP_ISNOTNULL (nivel de entrada)
SQL_SP_ISNULL (nivel de entrada)
SQL_SP_LIKE (nivel de entrada)
SQL_SP_MATCH_FULL (nivel completo)
SQL_SP_MATCH_PARTIAL(Nivel completo)
SQL_SP_MATCH_UNIQUE_FULL (nivel completo)
SQL_SP_MATCH_UNIQUE_PARTIAL (nivel completo)
SQL_SP_OVERLAPS (nivel de transición de FIPS)
SQL_SP_QUANTIFIED_COMPARISON (nivel de entrada)
SQL_SP_UNIQUE (nivel de entrada)
SQL_SQL92_RELATIONAL_JOIN_OPERATORS 3,0 Máscara de bits SQLUINTEGER que enumera los operadores de combinación relacional admitidos en una instrucción SELECT , tal como se define en SQL-92.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué opciones admite el origen de datos:
SQL_SRJO_CORRESPONDING_CLAUSE (nivel intermedio)
SQL_SRJO_CROSS_JOIN (nivel completo)
SQL_SRJO_EXCEPT_JOIN (nivel intermedio)
SQL_SRJO_FULL_OUTER_JOIN (nivel intermedio)
SQL_SRJO_INNER_JOIN (nivel de transición de FIPS)
SQL_SRJO_INTERSECT_JOIN (nivel intermedio)
SQL_SRJO_LEFT_OUTER_JOIN (nivel de transición de FIPS)
SQL_SRJO_NATURAL_JOIN (nivel de transición de FIPS)
SQL_SRJO_RIGHT_OUTER_JOIN (nivel de transición de FIPS)
SQL_SRJO_UNION_JOIN (nivel completo)

SQL_SRJO_INNER_JOIN indica compatibilidad con la sintaxis INNER JOIN , no para la funcionalidad de combinación interna. La compatibilidad con la sintaxis INNER JOIN es FIPS TRANSITIONAL, mientras que la compatibilidad con la funcionalidad de combinación interna es ENTRY.
SQL_SQL92_REVOKE 3,0 Máscara de bits SQLUINTEGER que enumera las cláusulas admitidas en la instrucción REVOKE , tal como se define en SQL-92, compatible con el origen de datos.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué cláusulas admite el origen de datos:
SQL_SR_CASCADE (nivel de transición de FIPS)
SQL_SR_DELETE_TABLE (nivel de entrada)
SQL_SR_GRANT_OPTION_FOR (nivel intermedio)
SQL_SR_INSERT_COLUMN (nivel intermedio)
SQL_SR_INSERT_TABLE (nivel de entrada)
SQL_SR_REFERENCES_COLUMN (nivel de entrada)
SQL_SR_REFERENCES_TABLE (nivel de entrada)
SQL_SR_RESTRICT (nivel de transición de FIPS)
SQL_SR_SELECT_TABLE (nivel de entrada)
SQL_SR_UPDATE_COLUMN (nivel de entrada)
SQL_SR_UPDATE_TABLE (nivel de entrada)
SQL_SR_USAGE_ON_DOMAIN (nivel de transición de FIPS)
SQL_SR_USAGE_ON_CHARACTER_SET (nivel de transición de FIPS)
SQL_SR_USAGE_ON_COLLATION (nivel de transición de FIPS)
SQL_SR_USAGE_ON_TRANSLATION (nivel de transición de FIPS)
SQL_SQL92_ROW_VALUE_CONSTRUCTOR 3,0 Máscara de bits SQLUINTEGER que enumera las expresiones de constructor de valores de fila admitidas en una instrucción SELECT , tal como se define en SQL-92. Las máscaras de bits siguientes se usan para determinar qué opciones admite el origen de datos:
SQL_SRVC_VALUE_EXPRESSION
SQL_SRVC_NULL
SQL_SRVC_DEFAULT
SQL_SRVC_ROW_SUBQUERY
SQL_SQL92_STRING_FUNCTIONS 3,0 Máscara de bits SQLUINTEGER que enumera las funciones escalares de cadena admitidas por el controlador y el origen de datos asociado, tal como se define en SQL-92.

Las siguientes máscaras de bits se usan para determinar qué funciones de cadena se admiten:
SQL_SSF_CONVERT
SQL_SSF_LOWERSQL_SSF_UPPER
SQL_SSF_SUBSTRING
SQL_SSF_TRANSLATE
SQL_SSF_TRIM_BOTH
SQL_SSF_TRIM_LEADING
SQL_SSF_TRIM_TRAILING
SQL_SQL92_VALUE_EXPRESSIONS 3,0 Máscara de bits SQLUINTEGER que enumera las expresiones de valor admitidas, tal como se define en SQL-92.

El nivel de conformidad de SQL-92 o FIPS en el que se debe admitir esta característica se muestra entre paréntesis junto a cada máscara de bits.

Las máscaras de bits siguientes se usan para determinar qué opciones admite el origen de datos:
SQL_SVE_CASE (nivel intermedio)
SQL_SVE_CAST (nivel de transición de FIPS)
SQL_SVE_COALESCE (nivel intermedio)
SQL_SVE_NULLIF (nivel intermedio)
SQL_STANDARD_CLI_CONFORMANCE 3,0 Máscara de bits SQLUINTEGER que enumera el estándar o los estándares de la CLI a los que se ajusta el controlador. Las máscaras de bits siguientes se usan para determinar qué niveles cumple el controlador:
SQL_SCC_XOPEN_CLI_VERSION1: el controlador cumple con la VERSIÓN 1 de la CLI de Open Group.
SQL_SCC_ISO92_CLI: el controlador cumple con la CLI iso 92.
SQL_STATIC_CURSOR_ATTRIBUTES1 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor estático compatible con el controlador. Esta máscara de bits contiene el primer subconjunto de atributos; para el segundo subconjunto, consulte SQL_STATIC_CURSOR_ATTRIBUTES2.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Para obtener descripciones de estas máscaras de bits, vea SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (y sustituya "cursor estático" por "cursor dinámico" en las descripciones).

Normalmente, un controlador conforme al nivel intermedio de SQL-92 devolverá las opciones de SQL_CA1_NEXT, SQL_CA1_ABSOLUTE y SQL_CA1_RELATIVE compatibles, ya que el controlador admite cursores desplazables a través de la instrucción SQL FETCH incrustada. Dado que esto no determina directamente la compatibilidad con SQL subyacente, es posible que no se admitan cursores desplazables, incluso para un controlador de nivel intermedio de SQL-92.
SQL_STATIC_CURSOR_ATTRIBUTES2 3,0 Máscara de bits SQLUINTEGER que describe los atributos de un cursor estático compatible con el controlador. Esta máscara de bits contiene el segundo subconjunto de atributos; para el primer subconjunto, consulte SQL_STATIC_CURSOR_ATTRIBUTES1.

Las máscaras de bits siguientes se usan para determinar qué atributos se admiten:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Para obtener descripciones de estas máscaras de bits, vea SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (y sustituya "cursor estático" por "cursor dinámico" en las descripciones).
SQL_STRING_FUNCTIONS 1.0 Nota: El tipo de información se introdujo en ODBC 1.0; cada máscara de bits se etiqueta con la versión en la que se introdujo.

Máscara de bits SQLUINTEGER que enumera las funciones de cadena escalares compatibles con el controlador y el origen de datos asociado.

Las siguientes máscaras de bits se usan para determinar qué funciones de cadena se admiten:
SQL_FN_STR_ASCII (ODBC 1.0)
SQL_FN_STR_BIT_LENGTH (ODBC 3.0)
SQL_FN_STR_CHAR (ODBC 1.0)
SQL_FN_STR_CHAR_LENGTH (ODBC 3.0)
SQL_FN_STR_CHARACTER_LENGTH (ODBC 3.0)
SQL_FN_STR_CONCAT (ODBC 1.0)
SQL_FN_STR_DIFFERENCE (ODBC 2.0)
SQL_FN_STR_INSERT (ODBC 1.0)
SQL_FN_STR_LCASE (ODBC 1.0)
SQL_FN_STR_LEFT (ODBC 1.0)
SQL_FN_STR_LENGTH (ODBC 1.0)
SQL_FN_STR_LOCATE (ODBC 1.0)
SQL_FN_STR_LTRIM (ODBC 1.0)
SQL_FN_STR_OCTET_LENGTH (ODBC 3.0)
SQL_FN_STR_POSITION (ODBC 3.0)
SQL_FN_STR_REPEAT (ODBC 1.0)
SQL_FN_STR_REPLACE (ODBC 1.0)
SQL_FN_STR_RIGHT (ODBC 1.0)
SQL_FN_STR_RTRIM (ODBC 1.0)
SQL_FN_STR_SOUNDEX (ODBC 2.0)
SQL_FN_STR_SPACE (ODBC 2.0)
SQL_FN_STR_SUBSTRING (ODBC 1.0)
SQL_FN_STR_UCASE (ODBC 1.0)

Si una aplicación puede llamar a la función escalar LOCATE con el string_exp1, string_exp2 y argumentos start , el controlador devuelve la máscara de bits SQL_FN_STR_LOCATE. Si una aplicación puede llamar a la función escalar LOCATE solo con los argumentos string_exp1 y string_exp2 , el controlador devuelve la máscara de bits SQL_FN_STR_LOCATE_2. Los controladores que admiten completamente la función escalar LOCATE devuelven ambas máscaras de bits.

(Para obtener más información, consulte Funciones de cadena en el apéndice E, "Funciones escalares".
SQL_SUBQUERIES 2.0 Máscara de bits SQLUINTEGER que enumera los predicados que admiten subconsultas:
SQL_SQ_CORRELATED_SUBQUERIES
SQL_SQ_COMPARISON
SQL_SQ_EXISTS
SQL_SQ_INSQL_SQ_QUANTIFIED

La máscara de bits SQL_SQ_CORRELATED_SUBQUERIES indica que todos los predicados que admiten subconsultas admiten subconsultas correlacionadas.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá una máscara de bits en la que se establecen todos estos bits.
SQL_SYSTEM_FUNCTIONS 1.0 Máscara de bits SQLUINTEGER que enumera las funciones del sistema escalar compatibles con el controlador y el origen de datos asociado.

Las máscaras de bits siguientes se usan para determinar qué funciones del sistema se admiten:
SQL_FN_SYS_DBNAME
SQL_FN_SYS_IFNULL
SQL_FN_SYS_USERNAME
SQL_TABLE_TERM 1.0 Cadena de caracteres con el nombre del proveedor del origen de datos para una tabla; por ejemplo, "tabla" o "archivo".

Esta cadena de caracteres puede estar en mayúsculas, minúsculas o minúsculas mixtas.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá "table".
SQL_TIMEDATE_ADD_INTERVALS 2.0 Máscara de bits SQLUINTEGER que enumera los intervalos de marca de tiempo admitidos por el controlador y el origen de datos asociado para la función escalar TIMESTAMPADD.

Las máscaras de bits siguientes se usan para determinar qué intervalos se admiten:
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Un controlador de nivel de transición fiPS siempre devolverá una máscara de bits en la que se establecen todos estos bits.
SQL_TIMEDATE_DIFF_INTERVALS 2.0 Máscara de bits SQLUINTEGER que enumera los intervalos de marca de tiempo admitidos por el controlador y el origen de datos asociado para la función escalar TIMESTAMPDIFF.

Las máscaras de bits siguientes se usan para determinar qué intervalos se admiten:
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Un controlador de nivel de transición fiPS siempre devolverá una máscara de bits en la que se establecen todos estos bits.
SQL_TIMEDATE_FUNCTIONS 1.0 Nota: El tipo de información se introdujo en ODBC 1.0; cada máscara de bits se etiqueta con la versión en la que se introdujo.

Máscara de bits SQLUINTEGER que enumera las funciones escalares de fecha y hora compatibles con el controlador y el origen de datos asociado.

Las siguientes máscaras de bits se usan para determinar qué funciones de fecha y hora se admiten:
SQL_FN_TD_CURRENT_DATE (ODBC 3.0)
SQL_FN_TD_CURRENT_TIME (ODBC 3.0)
SQL_FN_TD_CURRENT_TIMESTAMP (ODBC 3.0)
SQL_FN_TD_CURDATE (ODBC 1.0)
SQL_FN_TD_CURTIME (ODBC 1.0)
SQL_FN_TD_DAYNAME (ODBC 2.0)
SQL_FN_TD_DAYOFMONTH (ODBC 1.0)
SQL_FN_TD_DAYOFWEEK (ODBC 1.0)
SQL_FN_TD_DAYOFYEAR (ODBC 1.0)
SQL_FN_TD_EXTRACT (ODBC 3.0)
SQL_FN_TD_HOUR (ODBC 1.0)
SQL_FN_TD_MINUTE (ODBC 1.0)
SQL_FN_TD_MONTH (ODBC 1.0)
SQL_FN_TD_MONTHNAME (ODBC 2.0)
SQL_FN_TD_NOW (ODBC 1.0)
SQL_FN_TD_QUARTER (ODBC 1.0)
SQL_FN_TD_SECOND (ODBC 1.0)
SQL_FN_TD_TIMESTAMPADD (ODBC 2.0)
SQL_FN_TD_TIMESTAMPDIFF (ODBC 2.0)
SQL_FN_TD_WEEK (ODBC 1.0)
SQL_FN_TD_YEAR (ODBC 1.0)
SQL_TXN_CAPABLE 1.0 Nota: El tipo de información se introdujo en ODBC 1.0; cada valor devuelto se etiqueta con la versión en la que se introdujo.

Valor SQLUSMALLINT que describe la compatibilidad con transacciones en el controlador o el origen de datos:
SQL_TC_NONE = No se admiten transacciones. (ODBC 1.0)
SQL_TC_DML = Las transacciones solo pueden contener instrucciones del lenguaje de manipulación de datos (DML) (SELECT, INSERT, UPDATE, DELETE). Las instrucciones del lenguaje de definición de datos (DDL) encontradas en una transacción provocan un error. (ODBC 1.0)
SQL_TC_DDL_COMMIT = Las transacciones solo pueden contener instrucciones DML. Las instrucciones DDL (CREATE TABLE, DROP INDEX, etc.) encontradas en una transacción hacen que la transacción se confirme. (ODBC 2.0)
SQL_TC_DDL_IGNORE = Las transacciones solo pueden contener instrucciones DML. Las instrucciones DDL encontradas en una transacción se omiten. (ODBC 2.0)
SQL_TC_ALL = Las transacciones pueden contener instrucciones DDL y instrucciones DML en cualquier orden. (ODBC 1.0)

(Dado que la compatibilidad con transacciones es obligatoria en SQL-92, un controlador conforme a SQL-92 [cualquier nivel] nunca devolverá SQL_TC_NONE).
SQL_TXN_ISOLATION_OPTION 1.0 Máscara de bits SQLUINTEGER que enumera los niveles de aislamiento de transacción disponibles desde el controlador o el origen de datos.

Las máscaras de bits siguientes se usan junto con la marca para determinar qué opciones se admiten:
SQL_TXN_READ_UNCOMMITTED
SQL_TXN_READ_COMMITTED
SQL_TXN_REPEATABLE_READ
SQL_TXN_SERIALIZABLE

Para obtener descripciones de estos niveles de aislamiento, consulte la descripción de SQL_DEFAULT_TXN_ISOLATION.

Para establecer el nivel de aislamiento de transacciones, una aplicación llama a SQLSetConnectAttr para establecer el atributo SQL_ATTR_TXN_ISOLATION. Para obtener más información, vea Función SQLSetConnectAttr.

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá SQL_TXN_SERIALIZABLE como se admite. Un controlador compatible con el nivel de transición de FIPS siempre devolverá todas estas opciones como se admite.
SQL_UNION 2.0 Máscara de bits SQLUINTEGER que enumera la compatibilidad con la cláusula UNION :
SQL_U_UNION = El origen de datos admite la cláusula UNION .
SQL_U_UNION_ALL = El origen de datos admite la palabra clave ALL en la cláusula UNION . (SQLGetInfo devuelve tanto SQL_U_UNION como SQL_U_UNION_ALL en este caso).

Un controlador compatible con el nivel de entrada de SQL-92 siempre devolverá ambas opciones como se admite.
SQL_USER_NAME 1.0 Cadena de caracteres con el nombre usado en una base de datos determinada, que puede ser diferente del nombre de inicio de sesión.
SQL_XOPEN_CLI_YEAR 3,0 Cadena de caracteres que indica el año de publicación de la especificación Open Group con la que cumple plenamente la versión del Administrador de controladores ODBC.

Ejemplo

SQLGetInfo devuelve listas de opciones admitidas como máscara de bits SQLUINTEGER en *InfoValuePtr. La máscara de bits para cada opción se usa junto con la marca para determinar si se admite la opción.

Por ejemplo, una aplicación podría usar el código siguiente para determinar si el controlador asociado a la conexión admite la función escalar SUBSTRING.

Para obtener otro ejemplo de uso de SQLGetInfo, vea Función SQLTables.

SQLUINTEGER fFuncs;  
  
SQLGetInfo(hdbc,  
           SQL_STRING_FUNCTIONS,  
           (SQLPOINTER)&fFuncs,  
           sizeof(fFuncs),  
           NULL);  
  
// SUBSTRING supported  
if (fFuncs & SQL_FN_STR_SUBSTRING)  
   ;   // do something  
  
// SUBSTRING not supported  
else  
   ;   // do something else  

Devolver el valor de un atributo de conexión
Función SQLGetConnectAttr

Determinar si un controlador admite una función
Función SQLGetFunctions

Devolver el valor de un atributo de instrucción
Función SQLGetStmtAttr

Devolver información sobre los tipos de datos de un origen de datos
Función SQLGetTypeInfo

Consulte también

Referencia de API ODBC
Archivos de encabezado de ODBC