Transitions de connexion
Les connexions ODBC ont les états suivants.
State | Description |
---|---|
C0 | Environnement non alloué, connexion non allouée |
C1 | Environnement alloué, connexion non allouée |
C2 | Environnement alloué, connexion allouée |
C3 | La fonction de connexion a besoin de données |
C4 | Connexion connectée |
C5 | Connexion connectée, instruction allouée |
C6 | Connexion connectée, transaction en cours. Il est possible qu’une connexion soit à l’état C6 sans instructions allouées sur la connexion. Par exemple, supposons que la connexion soit en mode de validation manuelle et qu’elle soit à l’état C4. Si une instruction est allouée, exécutée (au démarrage d’une transaction), puis libérée, la transaction reste active, mais il n’y a aucune instruction sur la connexion. |
Les tableaux suivants montrent comment chaque fonction ODBC affecte l’état de la connexion.
SQLAllocHandle
C0 Pas d’env. |
C1 Non alloué | C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
C1[1] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
(IH) [2] | C2 | --[5] | --[5] | --[5] | --[5] | --[5] |
(IH) [3] | (IH) | (08003) | (08003) | C5 | --[5] | --[5] |
(IH) [4] | (IH) | (08003) | (08003) | --[5] | --[5] | --[5] |
[1] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DBC.
[3] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_STMT.
[4] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DESC.
[5] L’appel de SQLAllocHandle avec OutputHandlePtr pointant vers un handle valide remplace ce handle sans tenir compte du contenu précédent de ce handle, ce qui peut entraîner des problèmes pour les pilotes ODBC. La programmation d’application ODBC est incorrecte pour appeler SQLAllocHandle deux fois avec la même variable d’application définie pour *OutputHandlePtr sans appeler SQLFreeHandle pour libérer le handle avant de le réallouer. Le remplacement des handles ODBC d’une telle manière peut entraîner un comportement incohérent ou des erreurs de la part des pilotes ODBC.
SQLBrowseConnect
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | C3 [d] C4 [s] | -- [d] C2 [e] C4 [s] | (08002) | (08002) | (08002) |
SQLCloseCursor
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | -- | --[1] C5[2] |
[1] La connexion était en mode de validation manuelle.
[2] La connexion était en mode de validation automatique.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges et SQLTables
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] | -- |
[1] La connexion était en mode de validation automatique ou la source de données n’a pas commencé une transaction.
[2] La connexion était en mode de validation manuelle et la source de données a commencé une transaction.
SQLConnect
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | C4 | (08002) | (08002) | (08002) | (08002) |
SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField et SQLSetDescRec
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | --[1] | -- | -- |
[1] Dans cet état, les seuls descripteurs disponibles pour l’application sont des descripteurs explicitement alloués.
SQLDataSources et SQLDrivers
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | -- | -- | -- | -- | -- | -- |
SQLDisconnect
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (08003) | C2 | C2 | C2 | 25000 |
SQLDriverConnect
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | C4 s -- n[f] | (08002) | (08002) | (08002) | (08002) |
SQLEndTran
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) [1] | --[3] | --[3] | --[3] | -- | -- | --[4] ou ([5], [6] et [8]) C4[5] et [7] C5[5], [6] et [9] |
(IH) [2] | (IH) | (08003) | (08003) | -- | -- | C5 |
[1] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DBC.
[3] Étant donné que la connexion n’est pas dans un état connecté, elle n’est pas affectée par la transaction.
[4] Échec de la validation ou de la restauration sur la connexion. La fonction retourne SQL_ERROR dans ce cas.
[5] La validation ou la restauration a réussi sur la connexion. La fonction retourne SQL_ERROR si la validation ou la restauration a échoué sur une autre connexion, ou la fonction retourne SQL_SUCCESS si la validation ou la restauration a réussi sur toutes les connexions.
[6] Au moins une instruction a été allouée sur la connexion.
[7] Aucune instruction n’a été allouée sur la connexion.
[8] La connexion avait au moins une instruction pour laquelle il y avait un curseur ouvert, et la source de données conserve les curseurs lorsque les transactions sont validées ou restaurées, selon ce qui s’applique (selon que CompletionType a été SQL_COMMIT ou SQL_ROLLBACK). Pour plus d’informations, consultez les attributs SQL_CURSOR_COMMIT_BEHAVIOR et SQL_CURSOR_ROLLBACK_BEHAVIOR dans SQLGetInfo.
[9] Si la connexion avait des instructions pour lesquelles il y avait des curseurs ouverts, les curseurs n’ont pas été conservés lorsque la transaction a été validée ou restaurée.
SQLExecDirect et SQLExecute
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] C6[3] | -- |
[1] La connexion était en mode de validation automatique et l’instruction exécutée n’était pas une spécificationde curseur (telle qu’une instruction SELECT) ; ou la connexion était en mode de validation manuelle, et l’instruction exécutée n’a pas commencé une transaction.
[2] La connexion était en mode de validation automatique et l’instruction exécutée était une spécificationde curseur (telle qu’une instruction SELECT).
[3] La connexion était en mode de validation manuelle et la source de données a démarré une transaction.
SQLFreeHandle
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) [1] | C0 | (HY010) | (HY010) | (HY010) | (HY010) | (HY010) |
(IH) [2] | (IH) | (C1) | (HY010) | (HY010) | (HY010) | (HY010) |
(IH) [3] | (IH) | (IH) | (IH) | (IH) | C4[5] --[6] | --[7] C4[5] et [8] C5[6] et [8] |
(IH) [4] | (IH) | (IH) | (IH) | -- | -- | -- |
[1] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DBC.
[3] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_STMT.
[4] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DESC.
[5] Une seule instruction a été allouée sur la connexion.
[6] Plusieurs instructions ont été allouées sur la connexion.
[7] La connexion était en mode de validation manuelle.
[8] La connexion était en mode de validation automatique.
SQLFreeStmt
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) [1] | (IH) | (IH) | (IH) | (IH) | -- | C5[3] --[4] |
(IH) [2] | (IH) | (IH) | (IH) | (IH) | -- | -- |
[1] Cette ligne affiche les transactions lorsque l’argument Option est SQL_CLOSE.
[2] Cette ligne affiche les transactions lorsque l’argument Option est SQL_UNBIND ou SQL_RESET_PARAMS.
[3] La connexion était en mode de validation automatique et aucun curseur n’était ouvert sur les instructions à l’exception de celle-ci.
[4] La connexion était en mode de validation manuelle ou en mode validation automatique et un curseur était ouvert sur au moins une autre instruction.
SQLGetConnectAttr
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
IH | IH | --[1] 08003[2] | HY010 | -- | -- | -- |
[1] L’argument Attribute a été SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE ou SQL_ATTR_TRACEFILE, ou une valeur a été définie pour l’attribut de connexion.
[2] L’argument Attribute n’était pas SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE ou SQL_ATTR_TRACEFILE, et aucune valeur n’avait été définie pour l’attribut de connexion.
SQLGetDiagField et SQLGetDiagRec
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) [1] | -- | -- | -- | -- | -- | -- |
(IH) [2] | (IH) | -- | -- | -- | -- | -- |
(IH) [3] | (IH) | (IH) | (IH) | (IH) | -- | -- |
(IH) [4] | (IH) | (IH) | (IH) | -- | -- | -- |
[1] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DBC.
[3] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_STMT.
[4] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DESC.
SQLGetEnvAttr
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | -- | -- |
SQLGetFunctions
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
IH | IH | HY010 | HY010 | -- | -- | -- |
SQLGetInfo
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
IH | IH | --[1] 08003[2] | 08003 | -- | -- | -- |
[1] L’argument InfoType a été SQL_ODBC_VER.
[2] L’argument InfoType n’a pas été SQL_ODBC_VER.
SQLMoreResults
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] | --[3] C5[1] |
[1] La connexion était en mode de validation automatique et l’appel à SQLMoreResults n’a pas initialisé le traitement d’un jeu de résultats d’une spécification de curseur.
[2] La connexion était en mode de validation automatique et l’appel à SQLMoreResults a initialisé le traitement d’un jeu de résultats d’une spécification de curseur.
[3] La connexion était en mode de validation manuelle.
SQLNativeSql
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (08003) | (08003) | -- | -- | -- |
SQLPrepare
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | --[1] C6[2] | -- |
[1] La connexion était en mode de validation automatique ou la source de données n’a pas commencé une transaction.
[2] La connexion était en mode de validation manuelle et la source de données a commencé une transaction.
SQLSetConnectAttr
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
IH | IH | --[1] 08003[2] | HY010 | --[3] 08002[4] HY011[5] | --[3] 08002[4] HY011[5] | --[3] et [6] C5[8] 08002[4] HY011[5] ou [7] |
[1] L’argument Attribute n’a pas été SQL_ATTR_TRANSLATE_LIB ou SQL_ATTR_TRANSLATE_OPTION.
[2] L’argument Attribute a été SQL_ATTR_TRANSLATE_LIB ou SQL_ATTR_TRANSLATE_OPTION.
[3] L’argument Attribute n’a pas été SQL_ATTR_ODBC_CURSORS ou SQL_ATTR_PACKET_SIZE.
[4] L’argument Attribute a été SQL_ATTR_ODBC_CURSORS.
[5] L’argument Attribute a été SQL_ATTR_PACKET_SIZE.
[6] L’argument Attribute n’a pas été SQL_ATTR_AUTOCOMMIT ou l’argument Attribute a été SQL_ATTR_AUTOCOMMIT et la définition de cet attribut n’a pas validée la transaction.
[7] L’argument Attribute a été SQL_ATTR_TXN_ISOLATION.
[8] L’argument Attribute a été SQL_ATTR_AUTOCOMMIT, et la définition de cet attribut a validée la transaction.
SQLSetEnvAttr
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Données nécessaires |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | -- | -- | (HY010) | -- | -- | -- |
Toutes les autres fonctions ODBC
C0 Pas d’env. |
C1 Non alloué |
C2 Allocated |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
---|---|---|---|---|---|---|
(IH) | (IH) | (IH) | (IH) | (IH) | -- | -- |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour