Conformidade de interface de núcleo
Todos os drivers ODBC devem apresentar conformidade com interface pelo menos no nível do núcleo. Como os recursos no nível do núcleo são exigidos pela maioria dos aplicativos interoperáveis genéricos, o driver pode trabalhar com esses aplicativos. Os recursos no nível do núcleo também correspondem aos recursos definidos na especificação ISO da CLI e aos recursos não opcionais definidos na especificação de grupo aberto da CLI. Um driver ODBC em conformidade com a interface de nível do núcleo permite que o aplicativo faça o seguinte:
Chame SQLAllocHandle e SQLFreeHandle para alocar e liberar todos os tipos de identificadores.
Use todas as formas da função SQLFreeStmt.
Chame SQLBindCol para associar colunas do conjunto de resultados.
Chame SQLBindParameter e SQLNumParams para identificar parâmetros dinâmicos, incluindo matrizes de parâmetros, somente na direção de entrada. (Os parâmetros na direção de saída são o recurso 203 em Conformidade de interface de nível 2.)
Especifique um deslocamento de associação.
Envolva chamadas para SQLParamData e SQLPutData para usar a caixa de diálogo de dados em execução.
Chame SQLCloseCursor, SQLGetCursorName e SQLSetCursorName para gerenciar cursores e nomes de cursores.
Chame SQLColAttribute, SQLDescribeCol, SQLNumResultCols e SQLRowCount para obter acesso à descrição (metadados) dos conjuntos de resultados. (O uso dessas funções na coluna número 0 para recuperar os metadados dos indicadores é o recurso 204 em Conformidade de interface de nível 2.)
Chame as funções de catálogo SQLColumns, SQLGetTypeInfo, SQLStatistics e SQLTables para consultar o dicionário de dados.
Não é necessário que o driver ofereça suporte aos nomes de várias partes de tabelas e exibições do banco de dados. (Para obter mais informações, consulte o recurso 101 em Conformidade de interface de nível 1 e o recurso 201 em Conformidade de interface de nível 2). No entanto, determinados recursos da especificação SQL-92, como a qualificação de coluna e os nomes de índices, são sintaticamente comparáveis à nomeação de várias partes. A lista atual de recursos ODBC não se destina a introduzir novas opções nesses aspectos do SQL-92.
Chame SQLConnect, SQLDataSources, SQLDisconnect e SQLDriverConnect para gerenciar fontes de dados e conexões. Chame SQLDrivers para obter informações sobre drivers, independentemente do nível de ODBC compatível.
Chame SQLExecDirect, SQLExecute e SQLPrepare para preparar e executar instruções SQL.
Chame SQLFetch ou SQLFetchScroll com o argumento FetchOrientation definido como SQL_FETCH_NEXT para buscar uma ou várias linhas de um conjunto de resultados apenas na direção avançada.
Chame SQLGetData para obter uma coluna não associada em partes.
Chame SQLGetConnectAttr, SQLGetEnvAttr e SQLGetStmtAttr e defina todos os atributos para seus valores padrão para obter os valores atuais de todos os atributos e chame SQLSetConnectAttr, SQLSetEnvAttr e SQLSetStmtAttr para definir determinados atributos para valores não padrão.
Chame SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField e SQLSetDescRec para manipular determinados campos de descritores.
Chame SQLGetDiagField e SQLGetDiagRec para obter informações de diagnóstico.
Chame SQLGetFunctions e SQLGetInfo para detectar os recursos do driver. Além disso, detecte o resultado de qualquer substituição de texto feita em uma instrução SQL antes que ela seja enviada para a fonte de dados, chamando SQLNativeSql.
Use a sintaxe de SQLEndTran para confirmar uma transação. Um driver de nível de núcleo não precisa ser compatível com transações verdadeiras. Portanto, o aplicativo não pode especificar SQL_ROLLBACK nem SQL_AUTOCOMMIT_OFF para o atributo de conexão SQL_ATTR_AUTOCOMMIT. (Para obter mais informações, consulte o recurso 109 em Conformidade de interface de nível 2).
Chame SQLCancel para cancelar a caixa de diálogo de dados em execução e, em ambientes multithread, para cancelar uma função ODBC em execução em outro thread. A conformidade da interface no nível do núcleo não exige suporte para execução assíncrona de funções, nem o uso de SQLCancel para cancelar uma função ODBC em execução de forma assíncrona. Nem a plataforma nem o driver ODBC precisam ser multithread para que o driver realize atividades independentes ao mesmo tempo. No entanto, em ambientes multithread, o driver ODBC deve ser thread-safe. A serialização de solicitações do aplicativo é uma maneira em conformidade de implementar essa especificação, mesmo que possa criar sérios problemas de desempenho.
Chame SQLSpecialColumns para obter a coluna de tabelas de identificação de linha SQL_BEST_ROWID. (Suporte para SQL_ROWVER é o recurso 208 em Conformidade de interface de nível 2.)
Importante
Os drivers ODBC devem implementar as funções no nível de conformidade de interface do núcleo.