Partage via


SQLCloseCursor, fonction

Conformité
Version introduite : Conformité aux normes ODBC 3.0 : ISO 92

Résumé
SQLCloseCursor ferme un curseur qui a été ouvert sur une instruction et ignore les résultats en attente.

Syntaxe

  
SQLRETURN SQLCloseCursor(  
     SQLHSTMT     StatementHandle);  

Arguments

StatementHandle
[Entrée] Handle d’instruction.

Retours

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR ou SQL_INVALID_HANDLE.

Diagnostics

Lorsque SQLCloseCursor retourne SQL_ERROR ou SQL_SUCCESS_WITH_INFO, une valeur SQLSTATE associée peut être obtenue en appelant SQLGetDiagRec avec un HandleType de SQL_HANDLE_STMT et un Handle de StatementHandle. Le tableau suivant répertorie les valeurs SQLSTATE couramment retournées par SQLCloseCursor et explique chacune d’elles dans le contexte de cette fonction ; La notation « (DM) » précède les descriptions de SQLSTATEs retournées par le Gestionnaire de pilotes. Le code de retour associé à chaque valeur SQLSTATE est SQL_ERROR, sauf indication contraire.

SQLSTATE Error Description
01000 Avertissement général Message d’information spécifique au pilote. (La fonction retourne SQL_SUCCESS_WITH_INFO.)
24 000 État de curseur non valide Aucun curseur n’a été ouvert sur l’InstructionHandle. (Cette valeur est retournée uniquement par une instance ODBC 3. pilote x .)
HY000 Erreur générale Une erreur s’est produite pour laquelle il n’y avait pas de SQLSTATE spécifique et pour laquelle 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 la mémoire nécessaire pour prendre en charge l’exécution ou l’achèvement de la fonction.
HY010 Erreur de séquence de fonction (DM) Une fonction en cours d’exécution asynchrone a été appelée pour le handle de connexion associé à l’InstructionHandle et était toujours en cours d’exécution lorsque cette fonction a été appelée.

(DM) Une fonction en cours d’exécution asynchrone a été appelée pour l’InstructionHandle et était toujours en cours d’exécution lorsque cette fonction a été appelée.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations ou SQLSetPos a été appelé pour l’InstructionHandle et a retourné SQL_NEED_DATA. Cette fonction a été appelée avant l’envoi des données pour toutes les colonnes ou paramètres de données au moment de l’exécution.
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, peut-être 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 Délai d’attente de la connexion expiré Le délai d’expiration de la connexion a expiré avant que la source de données ne réponde à la demande. Le délai d’expiration de connexion est défini via SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Le pilote ne prend pas en charge cette fonction (DM) Le pilote associé à l’InstructionHandle ne prend pas en charge la fonction .

Commentaires

SQLCloseCursor retourne SQLSTATE 24000 (état de curseur non valide) si aucun curseur n’est ouvert. L’appel de SQLCloseCursor revient à appeler SQLFreeStmt avec l’option SQL_CLOSE, à l’exception que SQLFreeStmt avec SQL_CLOSE n’a aucun effet sur l’application si aucun curseur n’est ouvert sur l’instruction, tandis que SQLCloseCursor renvoie SQLSTATE 24000 (état de curseur non valide).

Notes

Si odbc 3. x application fonctionnant avec odbc 2. Le pilote x appelle SQLCloseCursor quand aucun curseur n’est ouvert, SQLSTATE 24000 (état de curseur non valide) n’est pas retourné, car le Gestionnaire de pilotes mappe SQLCloseCursor à SQLFreeStmt avec SQL_CLOSE.

Pour plus d’informations, consultez Fermeture du curseur.

Exemple de code

Consultez Fonction SQLBrowseConnect et Fonction SQLConnect.

Pour obtenir des informations sur Consultez
Annulation du traitement des instructions SQLCancel, fonction
Libération d’un handle Fonction SQLFreeHandle
Traitement de plusieurs jeux de résultats Fonction SQLMoreResults

Voir aussi

Informations de référence sur l’API ODBC
Fichiers d’en-tête ODBC