SQLDisconnect, fonction
conformité
Version introduite : Conformité aux normes ODBC 1.0 : ISO 92
résumé
SQLDisconnect ferme la connexion associée à un handle de connexion spécifique.
Syntaxe
SQLRETURN SQLDisconnect(
SQLHDBC ConnectionHandle);
Arguments
connectionHandle
[Entrée] Handle de connexion.
Retourne
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_INVALID_HANDLE ou SQL_STILL_EXECUTING.
Diagnostic
Lorsque
SQLSTATE | Erreur | Description |
---|---|---|
01000 | Avertissement général | Message d’information spécifique au pilote. (La fonction retourne SQL_SUCCESS_WITH_INFO.) |
01002 | Erreur de déconnexion | Une erreur s’est produite pendant la déconnexion. Toutefois, la déconnexion a réussi. (La fonction retourne SQL_SUCCESS_WITH_INFO.) |
08003 | Connexion non ouverte | (DM) La connexion spécifiée dans l’argument ConnectionHandle n’a pas été ouverte. |
25000 | État de transaction non valide | Une transaction a été effectuée sur la connexion spécifiée par l’argument ConnectionHandle. La transaction reste active. |
HY000 | Erreur générale | Une erreur s’est produite pour laquelle il n’y avait aucun SQLSTATE spécifique et pour lequel aucun SQLSTATE spécifique à l’implémentation n’a été défini. Le message d’erreur retourné par SQLGetDiagRec dans la mémoire tampon *MessageText décrit l’erreur et sa cause. |
HY001 | Erreur d’allocation de mémoire | Le pilote n’a pas pu allouer de mémoire nécessaire pour prendre en charge l’exécution ou l’achèvement de la fonction. |
HY008 | Opération annulée | Le traitement asynchrone a été activé pour leConnectionHandle La fonction a été appelée et avant de terminer l’exécution |
HY010 | Erreur de séquence de fonction | (DM) Une fonction en cours d’exécution asynchrone a été appelée pour un StatementHandle (DM) Une fonction en cours d’exécution asynchrone (pas celle-ci) a été appelée pour le ConnectionHandle et était toujours en cours d’exécution lorsque cette fonction a été appelée. (DM) |
HY013 | Erreur de gestion de la mémoire | L’appel de fonction n’a pas pu être traité, car les objets de mémoire sous-jacents n’ont pas pu être accessibles, éventuellement en raison de conditions de mémoire insuffisantes. |
HY117 | La connexion est suspendue en raison d’un état de transaction inconnu. Seules les fonctions de déconnexion et de lecture seule sont autorisées. | (DM) Pour plus d’informations sur l’état suspendu, consultez fonction SQLEndTran. |
HYT01 | Expiration du délai d’expiration de la connexion | La période d’expiration de la connexion a expiré avant que la source de données ne réponde à la demande et que la connexion soit toujours active. La période d’expiration de la connexion est définie via SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. |
IM001 | Le pilote ne prend pas en charge cette fonction | (DM) Le pilote associé au ConnectionHandle |
IM017 | L’interrogation est désactivée en mode de notification asynchrone | Chaque fois que le modèle de notification est utilisé, l’interrogation est désactivée. |
IM018 | SQLCompleteAsync n’a pas été appelé pour terminer l’opération asynchrone précédente sur ce handle. | Si l’appel de fonction précédent sur le handle retourne SQL_STILL_EXECUTING et si le mode de notification est activé, SQLCompleteAsync doit être appelé sur le handle pour effectuer un post-traitement et terminer l’opération. |
Commentaires
Si une application appelle SQLDisconnect après SQLBrowseConnect retourne SQL_NEED_DATA et avant qu’elle retourne un autre code de retour, le pilote annule le processus de navigation de connexion et retourne la connexion à un état non connecté.
Si une application appelle SQLDisconnect alors qu’il existe une transaction incomplète associée au handle de connexion, le pilote retourne SQLSTATE 25000 (état de transaction non valide), indiquant que la transaction n’est pas modifiée et que la connexion est ouverte. Une transaction incomplète est une transaction qui n’a pas été validée ou restaurée avec SQLEndTran.
Si une application appelle SQLDisconnect avant qu’elle n’ait libéré toutes les instructions associées à la connexion, le pilote, après qu’il se déconnecte correctement de la source de données, libère ces instructions et tous les descripteurs qui ont été explicitement alloués sur la connexion. Toutefois, si une ou plusieurs des instructions associées à la connexion sont toujours en cours d’exécution asynchrone, SQLDisconnect retourne SQL_ERROR avec une valeur SQLSTATE d’HY010 (erreur de séquence de fonction). En outre, SQLDisconnect libère toutes les instructions associées et tous les descripteurs qui ont été explicitement alloués sur la connexion, si la connexion est dans un état suspendu ou si sqlDisconnect a été annulé avec succès par SQLCancelHandle.
Pour plus d’informations sur l’utilisation d’une application SQLDisconnect, consultez Déconnexion d’une source de données ou d’unde pilote .
Déconnexion d’une connexion mise en pool
Si le regroupement de connexions est activé pour un environnement partagé et qu’une application appelle SQLDisconnect sur une connexion dans cet environnement, la connexion est retournée au pool de connexions et est toujours disponible pour d’autres composants utilisant le même environnement partagé.
Exemple de code
Consultez exemple de programme ODBC, de fonction SQLBrowseConnect et fonction SQLConnect.
Fonctions associées
Pour plus d’informations sur | Voir |
---|---|
Allocation d’un handle | fonction SQLAllocHandle |
Connexion à une source de données | fonction SQLConnect |
Connexion à une source de données à l’aide d’une chaîne de connexion ou d’une boîte de dialogue | fonction SQLDriverConnect |
Exécution d’une opération de validation ou de restauration | fonction SQLEndTran |
Libération d’un handle de connexion | fonction SQLFreeConnect |
Voir aussi
informations de référence sur l’API ODBC
fichiers d’en-tête ODBC