SQLNumResultCols, fonction
Conformité
Version introduite : Conformité aux normes ODBC 1.0 : ISO 92
Résumé
SQLNumResultCols retourne le nombre de colonnes dans un jeu de résultats.
Syntaxe
SQLRETURN SQLNumResultCols(
SQLHSTMT StatementHandle,
SQLSMALLINT * ColumnCountPtr);
Arguments
StatementHandle
[Entrée] Handle d’instruction.
ColumnCountPtr
[Sortie] Pointeur vers une mémoire tampon dans laquelle retourner le nombre de colonnes dans le jeu de résultats. Ce nombre n’inclut pas de colonne de signet lié.
Retours
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR ou SQL_INVALID_HANDLE.
Diagnostics
Lorsque SQLNumResultCols 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 of StatementHandle. Le tableau suivant répertorie les valeurs SQLSTATE couramment retournées par SQLNumResultCols 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 | Erreur | Description |
---|---|---|
01000 | Avertissement général | Message d’information spécifique au pilote. (La fonction retourne SQL_SUCCESS_WITH_INFO.) |
08S01 | Échec du lien de communication | Le lien de communication entre le pilote et la source de données à laquelle le pilote a été connecté a échoué avant l’achèvement du traitement de la fonction. |
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 StatementHandle. La fonction a été appelée et avant qu’elle ait terminé l’exécution, SQLCancel ou SQLCancelHandle a été appelée sur l’InstructionHandle ; la fonction a ensuite été appelée à nouveau sur StatementHandle. La fonction a été appelée et avant qu’elle ait terminé l’exécution, SQLCancel ou SQLCancelHandle a été appelée sur l’InstructionHandle à partir d’un autre thread dans une application multithread. |
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é à StatementHandle. Cette fonction asynchrone était toujours en cours d’exécution lorsque la fonction SQLNumResultsCols a été appelée. (DM) SQLExecute, SQLExecDirect ou SQLMoreResults a été appelé pour l’instruction StatementHandle et retourné SQL_PARAM_DATA_AVAILABLE. Cette fonction a été appelée avant la récupération des données pour tous les paramètres diffusés en continu. (DM) La fonction a été appelée avant d’appeler SQLPrepare ou SQLExecDirect pour StatementHandle. (DM) Une fonction en cours d’exécution asynchrone (et non celle-ci) a été appelée pour l’instruction StatementHandle 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 retourné SQL_NEED_DATA. Cette fonction a été appelée avant que les données ne soient envoyées pour tous les paramètres ou colonnes de données à l’exécution. Consultez la fonction SQLPrepare pour plus d’informations sur le moment où un handle d’instruction peut être libéré. |
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 la fonction SQLEndTran. |
HYT01 | Délai d’attente de la connexion expiré | La période d’expiration de la connexion a expiré avant que la source de données ne réponde à la demande. La période d’expiration de connexion est définie via SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. |
IM001 | Le pilote ne prend pas en charge cette fonction | (DM) Le pilote associé à StatementHandle ne prend pas en charge la fonction. |
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. |
SQLNumResultCols peut retourner n’importe quel SQLSTATE qui peut être retourné par SQLPrepare ou SQLExecute lorsqu’il est appelé après SQLPrepare et avant SQLExecute, selon le moment où la source de données évalue l’instruction SQL associée à l’instruction.
Commentaires
SQLNumResultCols peut être appelé avec succès uniquement lorsque l’instruction est dans l’état préparé, exécuté ou positionné.
Si l’instruction associée à StatementHandle ne retourne pas de colonnes, SQLNumResultCols définit *ColumnCountPtr sur 0.
Le nombre de colonnes retournées par SQLNumResultCols est la même valeur que le champ SQL_DESC_COUNT de l’IRD.
Pour plus d’informations, consultez Le jeu de résultats a-t-il été créé et comment les métadonnées sont-elles utilisées ?.
Fonctions connexes
Pour plus d’informations sur | Consultez |
---|---|
Liaison d’une mémoire tampon à une colonne dans un jeu de résultats | SQLBindCol, fonction |
Annulation du traitement des instructions | SQLCancel, fonction |
Retour d’informations sur une colonne dans un jeu de résultats | SQLColAttribute, fonction |
Retour d’informations sur une colonne dans un jeu de résultats | SQLDescribeCol, fonction |
Exécution d’une instruction SQL | SQLExecDirect, fonction |
Exécution d’une instruction SQL préparée | SQLExecute, fonction |
Extraction d’un bloc de données ou défilement d’un jeu de résultats | SQLFetchScroll, fonction |
Extraction d’une seule ligne ou d’un bloc de données dans une direction vers l’avant uniquement | SQLFetch, fonction |
Extraction d’une partie ou de l’ensemble d’une colonne de données | SQLGetData, fonction |
Préparation d’une instruction SQL pour l’exécution | SQLPrepare, fonction |
Définition des options de défilement du curseur | SQLSetStmtAttr, fonction |
Voir aussi
Informations de référence sur l’API ODBC
Fichiers d’en-tête ODBC