Conformité de l’interface principale
Tous les pilotes ODBC doivent présenter au moins la conformité de l’interface de niveau core. Étant donné que les fonctionnalités du niveau Core sont celles requises par la plupart des applications interopérables génériques, le pilote peut travailler avec ces applications. Les fonctionnalités du niveau Core correspondent également aux fonctionnalités définies dans la spécification ISO CLI et aux fonctionnalités non optionnelles définies dans la spécification CLI Open Group. Un pilote ODBC conforme à l’interface de niveau principal permet à l’application d’effectuer toutes les opérations suivantes :
Allouez et libérez tous les types de handles, en appelant SQLAllocHandle et SQLFreeHandle.
Utilisez toutes les formes de la fonction SQLFreeStmt .
Lier des colonnes de jeu de résultats, en appelant SQLBindCol.
Gérez les paramètres dynamiques, y compris les tableaux de paramètres, dans la direction d’entrée uniquement, en appelant SQLBindParameter et SQLNumParams. (Les paramètres dans la direction de sortie sont la fonctionnalité 203 dans Conformité de l’interface de niveau 2.)
Spécifiez un décalage de liaison.
Utilisez la boîte de dialogue data-at-execution, impliquant des appels à SQLParamData et SQLPutData.
Gérez les curseurs et les noms de curseurs en appelant SQLCloseCursor, SQLGetCursorName et SQLSetCursorName.
Accédez à la description (métadonnées) des jeux de résultats, en appelant SQLColAttribute, SQLDescribeCol, SQLNumResultCols et SQLRowCount. (L’utilisation de ces fonctions sur le numéro de colonne 0 pour récupérer les métadonnées de signet est la fonctionnalité 204 dans Conformité de l’interface de niveau 2.)
Interrogez le dictionnaire de données en appelant les fonctions de catalogue SQLColumns, SQLGetTypeInfo, SQLStatistics et SQLTables.
Le pilote n’est pas nécessaire pour prendre en charge les noms à plusieurs parties des tables et vues de base de données. (Pour plus d’informations, consultez la fonctionnalité 101 dans Conformité de l’interface de niveau 1 et fonctionnalité 201 dans la conformité de l’interface de niveau 2.) Toutefois, certaines fonctionnalités de la spécification SQL-92, telles que la qualification de colonne et les noms d’index, sont comparables de manière syntactique à l’affectation de noms à plusieurs parties. La liste actuelle des fonctionnalités ODBC n’est pas destinée à introduire de nouvelles options dans ces aspects de SQL-92.
Gérez les sources de données et les connexions en appelant SQLConnect, SQLDataSources, SQLDisconnect et SQLDriverConnect. Obtenez des informations sur les pilotes, quel que soit le niveau ODBC pris en charge, en appelant SQLDrivers.
Préparez et exécutez des instructions SQL, en appelant SQLExecDirect, SQLExecute et SQLPrepare.
Récupérez une ligne d’un jeu de résultats ou plusieurs lignes, dans la direction vers l’avant uniquement, en appelant SQLFetch ou en appelant SQLFetchScroll avec l’argument FetchOrientation défini sur SQL_FETCH_NEXT.
Obtenez une colonne non entrante dans des parties, en appelant SQLGetData.
Obtenez les valeurs actuelles de tous les attributs, en appelant SQLGetConnectAttr, SQLGetEnvAttr et SQLGetStmtAttr, et définissez tous les attributs sur leurs valeurs par défaut et définissez certains attributs sur des valeurs non définies en appelant SQLSetConnectAttr, SQLSetEnvAttr et SQLSetStmtAttr.
Manipulez certains champs de descripteurs, en appelant SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField et SQLSetDescRec.
Obtenez des informations de diagnostic en appelant SQLGetDiagField et SQLGetDiagRec.
Détecter les fonctionnalités du pilote, en appelant SQLGetFunctions et SQLGetInfo. En outre, détectez le résultat des substitutions de texte effectuées dans une instruction SQL avant qu’elle ne soit envoyée à la source de données, en appelant SQLNativeSql.
Utilisez la syntaxe de SQLEndTran pour valider une transaction. Un pilote de niveau principal n’a pas besoin de prendre en charge les transactions vraies ; par conséquent, l’application ne peut pas spécifier SQL_ROLLBACK ni SQL_AUTOCOMMIT_OFF pour l’attribut de connexion SQL_ATTR_AUTOCOMMIT. (Pour plus d’informations, consultez la fonctionnalité 109 dans Conformité de l’interface de niveau 2.)
Appelez SQLCancel pour annuler la boîte de dialogue data-at-execution et, dans les environnements multithread, pour annuler une fonction ODBC s’exécutant dans un autre thread. La conformité de l’interface de niveau principal n’impose pas la prise en charge de l’exécution asynchrone de fonctions, ni l’utilisation de SQLCancel pour annuler l’exécution asynchrone d’une fonction ODBC. Ni la plateforme ni le pilote ODBC n’ont besoin d’être multithreads pour que le pilote effectue des activités indépendantes en même temps. Toutefois, dans les environnements multithread, le pilote ODBC doit être thread-safe. La sérialisation des demandes de l’application est un moyen conforme d’implémenter cette spécification, même si elle peut créer des problèmes de performances graves.
Obtenez la SQL_BEST_ROWID colonne d’identification de ligne de tables en appelant SQLSpecialColumns. (La prise en charge de SQL_ROWVER est la fonctionnalité 208 dans Conformité de l’interface de niveau 2.)
Important
Les pilotes ODBC doivent implémenter les fonctions au niveau de conformité de l’interface core.