Partager via


Procédure : traiter des résultats (ODBC)

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. Lorsque 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, lorsque 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 S jeux de résultats à traiter, où chaque jeu de résultats comprend l'ensemble des jeux de résultats, des paramètres de sortie et des codes de retour habituellement retournés par une exécution unique de l'instruction SQL.

    [!REMARQUE]

    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 les mémoires tampons de colonnes liées.

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

[!REMARQUE]

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