Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 dans l’état C6 sans instructions allouées sur la connexion. Par exemple, supposons que la connexion est en mode de validation manuelle et qu’elle est dans l’état C4. Si une instruction est allouée, exécutée (démarrage d’une transaction), puis libérée, la transaction reste active, mais il n’y a pas d’instructions sur la connexion. |
Les tableaux suivants montrent comment chaque fonction ODBC affecte l’état de connexion.
SQLAllocHandle
| C0
Pas d’env. |
C1 non alloué | C2 Affecté |
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 affiche les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_DBC.
[3] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_STMT.
[4] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_DESC.
[5] Appel de SQLAllocHandle avec OutputHandlePtr pointant vers un handle valide qui remplace ce handle sans tenir compte du contenu précédent de ce handle et peut entraîner des problèmes pour les pilotes ODBC. Il est incorrect de programmer une application ODBC 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 la réallouer. Le remplacement des handles ODBC d’une telle manière peut entraîner des erreurs ou comportements incohérents dans la partie des pilotes ODBC.
SQLBrowseConnect
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
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 Affecté |
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 Affecté |
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 Affecté |
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 Affecté |
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 alloués explicitement.
SQLDataSources et SQLDrivers
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| (IH) | -- | -- | -- | -- | -- | -- |
SQLDisconnect
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| (IH) | (IH) | (08003) | C2 | C2 | C2 | 25000 |
SQLDriverConnect
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| (IH) | (IH) | C4 s -- n[f] | (08002) | (08002) | (08002) | (08002) |
SQLEndTran
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
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 affiche les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne affiche 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] Validation ou restauration réussie sur la connexion. La fonction retourne SQL_ERROR si la validation ou la restauration a échoué sur une autre connexion, ou si 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 que CompletionType était 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 Affecté |
C3 Besoin de données |
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écification de curseur(par exemple, 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écification de curseur(par exemple, une instruction SELECT).
[3] La connexion était en mode de validation manuelle et la source de données a commencé une transaction.
SQLFreeHandle
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
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 affiche les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_DBC.
[3] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_STMT.
[4] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_DESC.
[5] Il n’y avait qu’une seule instruction 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 Affecté |
C3 Besoin de données |
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 elle était en mode de validation automatique et un curseur était ouvert sur au moins une autre instruction.
SQLGetConnectAttr
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| IH | IH | --[1] 08003[2] | HY010 | -- | -- | -- |
[1] L’argument Attribut était 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 avait été définie pour l’attribut de connexion.
[2] L’argument Attribut 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 une valeur n’avait pas été définie pour l’attribut de connexion.
SQLGetDiagField et SQLGetDiagRec
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
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 affiche les transitions lorsque HandleType a été SQL_HANDLE_ENV.
[2] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_DBC.
[3] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_STMT.
[4] Cette ligne affiche les transitions lorsque HandleType a été SQL_HANDLE_DESC.
SQLGetEnvAttr
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| IH | -- | -- | -- | -- | -- | -- |
SQLGetFunctions
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| IH | IH | HY010 | HY010 | -- | -- | -- |
SQLGetInfo
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| IH | IH | --[1] 08003[2] | 08003 | -- | -- | -- |
[1] L’argument InfoType était SQL_ODBC_VER.
[2] L’argument InfoType n’était pas SQL_ODBC_VER.
SQLMoreResults
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
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 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| (IH) | (IH) | (08003) | (08003) | -- | -- | -- |
SQLPrepare
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
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.
SQLSetConnectAttr
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
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 Attribut n’a pas été SQL_ATTR_TRANSLATE_LIB ni SQL_ATTR_TRANSLATE_OPTION.
[2] L’argument Attribut était SQL_ATTR_TRANSLATE_LIB ou SQL_ATTR_TRANSLATE_OPTION.
[3] L’argument Attribut n’a pas été SQL_ATTR_ODBC_CURSORS ni SQL_ATTR_PACKET_SIZE.
[4] L’argument Attribut était SQL_ATTR_ODBC_CURSORS.
[5] L’argument Attribut était SQL_ATTR_PACKET_SIZE.
[6] L’argument Attribut n’était pas SQL_ATTR_AUTOCOMMIT, ou l’argument Attribut était SQL_ATTR_AUTOCOMMIT et la définition de cet attribut n’a pas validée la transaction.
[7] L’argument Attribut était SQL_ATTR_TXN_ISOLATION.
[8] L’argument Attribut a été SQL_ATTR_AUTOCOMMIT et la définition de cet attribut a validé la transaction.
SQLSetEnvAttr
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| (IH) | -- | -- | (HY010) | -- | -- | -- |
Toutes les autres fonctions ODBC
| C0
Pas d’env. |
C1 Non alloué |
C2 Affecté |
C3 Besoin de données |
C4 Connecté |
C5 . |
C6 Transaction |
|---|---|---|---|---|---|---|
| (IH) | (IH) | (IH) | (IH) | (IH) | -- | -- |