Conformidad de interfaz de núcleo

Todos los controladores ODBC deben mostrar al menos la conformidad de la interfaz de nivel de núcleo. Dado que las características del nivel de núcleo son las que requieren la mayoría de las aplicaciones interoperables genéricas, el controlador puede funcionar con estas aplicaciones. Las características del nivel de núcleo también corresponden a las características definidas en la especificación de ISO para la CLI y a las características no opcionales definidas en la especificación de Open Group para la CLI. Un controlador ODBC compatible con la interfaz de nivel de núcleo permite a la aplicación hacer todo lo siguiente:

  • Asignar y liberar todos los tipos de identificadores mediante una llamada a SQLAllocHandle y SQLFreeHandle.

  • Usar todas las formas de la función SQLFreeStmt.

  • Enlazar las columnas del conjunto de resultados mediante una llamada a SQLBindCol.

  • Controlar los parámetros dinámicos, incluidas las matrices de parámetros, solo en la dirección de entrada, mediante una llamada a SQLBindParameter y SQLNumParams. (Los parámetros en la dirección de salida son la característica 203 en Cumplimiento de la interfaz de nivel 2).

  • Especificar un desfase de enlace.

  • Usar el cuadro de diálogo de datos en ejecución, que implica llamadas a SQLParamData y SQLPutData.

  • Administrar cursores y nombres de cursores mediante una llamada a SQLCloseCursor, SQLGetCursorName y SQLSetCursorName.

  • Obtener acceso a la descripción (metadatos) de los conjuntos de resultados mediante una llamada a SQLColAttribute, SQLDescribeCol, SQLNumResultCols y SQLRowCount. (El uso de estas funciones en el número de columna 0 para recuperar metadatos de marcadores es la característica 204 en Cumplimiento de la interfaz de nivel 2).

  • Consultar el diccionario de datos mediante una llamada a las funciones de catálogo SQLColumns, SQLGetTypeInfo, SQLStatistics y SQLTables.

    El controlador no es necesario para admitir nombres de varias partes de tablas y vistas de bases de datos. (Para obtener más información, consulte la característica 101 en Cumplimiento de la interfaz de nivel 1 y la característica 201 en Cumplimiento de la interfaz de nivel 2). Sin embargo, algunas características de la especificación SQL-92, como la calificación de columnas y los nombres de los índices, son sintácticamente comparables a la nomenclatura de varias partes. La lista actual de características de ODBC no está pensada para introducir nuevas opciones en estos aspectos de SQL-92.

  • Administrar orígenes de datos y conexiones mediante una llamada a SQLConnect, SQLDataSources, SQLDisconnect y SQLDriverConnect. Obtenga información sobre los controladores, independientemente del nivel de ODBC que admitan, mediante una llamada a SQLDrivers.

  • Preparar y ejecutar instrucciones SQL mediante una llamada a SQLExecDirect, SQLExecute y SQLPrepare.

  • Capturar una fila de un conjunto de resultados o varias filas, solo en la dirección hacia adelante mediante una llamada a SQLFetch o una llamada a SQLFetchScroll con el argumento FetchOrientation establecido en SQL_FETCH_NEXT.

  • Obtener una columna sin enlazar en partes mediante una llamada a SQLGetData.

  • Obtener los valores actuales de todos los atributos, mediante una llamada a SQLGetConnectAttr, SQLGetEnvAttr y SQLGetStmtAttr, y establecer todos los atributos en sus valores predeterminados y establecer determinados atributos en valores no predeterminados mediante una llamada a SQLSetConnectAttr, SQLSetEnvAttr y SQLSetStmtAttr.

  • Manipular determinados campos de descriptores mediante una llamada a SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField y SQLSetDescRec.

  • Obtener información de diagnóstico mediante una llamada a SQLGetDiagField y SQLGetDiagRec.

  • Detectar las funcionalidades de los controladores mediante una llamada a SQLGetFunctions y SQLGetInfo. Además, detecte el resultado de las sustituciones de texto realizadas a una instrucción SQL antes de enviarla al origen de datos mediante una llamada a SQLNativeSql.

  • Usar la sintaxis de SQLEndTran para confirmar una transacción. Un controlador de nivel de núcleo no necesita admitir transacciones verdaderas; por lo tanto, la aplicación no puede especificar SQL_ROLLBACK ni SQL_AUTOCOMMIT_OFF para el atributo de conexión SQL_ATTR_AUTOCOMMIT. (Para obtener más información, consulte la característica 109 en Cumplimiento de la interfaz de nivel 2).

  • Llamar a SQLCancel para cancelar el cuadro de diálogo de datos en ejecución y, en entornos multiproceso, para cancelar una función de ODBC que se ejecuta en otro subproceso. La conformidad de la interfaz de nivel de núcleo no exige compatibilidad con la ejecución asincrónica de funciones ni el uso de SQLCancel para cancelar una función de ODBC que se ejecuta de forma asincrónica. Ni la plataforma ni el controlador ODBC tienen que ser multiproceso para que el controlador realice actividades independientes al mismo tiempo. Sin embargo, en entornos multiproceso, el controlador ODBC debe ser seguro para subprocesos. La serialización de solicitudes de la aplicación es una manera compatible de implementar esta especificación, aunque podría crear problemas graves de rendimiento.

  • Obtener la columna de identificación de filas SQL_ROWVER de tablas mediante una llamada a SQLSpecialColumns. (La compatibilidad con SQL_ROWVER es la característica 208 en Cumplimiento de la interfaz de nivel 2).

    Importante

    Los controladores ODBC deben implementar las funciones en el nivel de conformidad de la interfaz de núcleo.