Partager via


Traitement des résultats - Traiter les résultats

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Le traitement des résultats dans une application ODBC implique d’abord de déterminer les caractéristiques du jeu de résultats, puis de récupérer les données dans des variables de programme à l’aide de SQLBindCol ou DE SQLGetData.

Pour traiter des résultats

  1. Récupérez les informations du jeu de résultats.

  2. Si des colonnes dépendantes sont utilisées, pour chaque colonne à lier, appelez SQLBindCol pour lier une mémoire tampon de programme à la colonne.

  3. Pour chaque ligne de l'ensemble de résultats :

    • Appelez SQLFetch pour obtenir la ligne suivante.

    • Si les colonnes dépendantes sont utilisées, utilisez les données à présent disponibles dans les mémoires tampons des colonnes dépendantes.

    • Si des colonnes indépendantes sont utilisées, appelez SQLGetData une ou plusieurs fois pour obtenir les données pour les colonnes indépendantes après la dernière colonne dépendante. Les appels à SQLGetData doivent être dans l’ordre croissant des numéros de colonnes.

    • Appelez plusieurs fois SQLGetData pour obtenir des données à partir d'une colonne text ou image.

  4. Quand SQLFetch signale la fin du jeu de résultats en retournant SQL_NO_DATA, appelez SQLMoreResults pour déterminer si un autre jeu de résultats est disponible.

    • S'il retourne SQL_SUCCESS, un autre jeu de résultats est disponible.

    • S'il retourne SQL_NO_DATA, aucun autre jeu de résultats n'est disponible.

    • S’il retourne SQL_SUCCESS_WITH_INFO ou SQL_ERROR, appelez SQLGetDiagRec pour déterminer si la sortie à partir d’une instruction PRINT ou RAISERROR est disponible.

      Si des paramètres d'instruction liés sont utilisés pour les paramètres de sortie ou la valeur de retour d'une procédure stockée, utilisez les données à présent disponibles dans les mémoires tampons de paramètres liés. Par ailleurs, quand des paramètres liés sont utilisés, chaque appel à SQLExecute ou à SQLExecDirect aura exécuté l’instruction SQL S fois, où S est le nombre d’éléments présents dans le tableau de paramètres liés. Cela signifie qu’il y aura des ensembles S de résultats à traiter, où chaque jeu de résultats comprend tous les jeux de résultats, les paramètres de sortie et les codes de retour généralement retournés par une seule exécution de l’instruction SQL.

    Notes

    Lorsqu'un jeu de résultats contient des lignes calculées, chaque ligne calculée est rendue disponible comme un jeu de résultats distinct. Ces jeux de résultats calculés sont intercalés au sein des lignes normales et séparent les lignes normales en plusieurs jeux de résultats.

  5. Vous pouvez également appeler SQLFreeStmt avec SQL_UNBIND pour libérer tous les tampons de colonnes liées éventuels.

  6. Si un autre jeu de résultats est disponible, allez à l’étape 1.

Notes

Pour annuler le traitement d’un jeu de résultats avant que SQLFetch ne retourne SQL_NO_DATA, appelez SQLCloseCursor.

Voir aussi

Récupérer des informations du jeu de résultats (ODBC)