Partager via


Procédure : utiliser une instruction (ODBC)

Pour utiliser une instruction

  1. Appelez SQLAllocHandle avec SQL_HANDLE_STMT comme HandleType de manière à allouer un descripteur d'instruction.

  2. Si vous le souhaitez, appelez SQLSetStmtAttr pour définir des options d'instruction ou SQLGetStmtAttr pour obtenir des attributs d'instruction.

    Pour utiliser des curseurs côté serveur, vous devez affecter aux attributs de curseur des valeurs autres que leurs valeurs par défaut.

  3. Si vous le souhaitez et si l'instruction doit être exécutée plusieurs fois, préparez son exécution avec SQLPrepare.

  4. Si vous le souhaitez et si l'instruction a des marqueurs de paramètres liés, liez ces marqueurs de paramètres à des variables de programme à l'aide de SQLBindParameter. Si l'instruction a été préparée, vous pouvez appeler SQLNumParams et SQLDescribeParam pour rechercher le nombre de paramètres et leurs caractéristiques.

  5. Exécutez une instruction directement en utilisant SQLExecDirect.

    - ou -

    Si l'instruction a été préparée, exécutez-la plusieurs fois à l'aide de SQLExecute.

    - ou -

    Appelez une fonction de catalogue qui retourne des résultats.

  6. Traitez les résultats en liant les colonnes du jeu de résultats aux variables de programme, en déplaçant des données des colonnes de jeu de résultats vers des variables de programme à l'aide de SQLGetData, ou une combinaison des deux méthodes.

    Extrayez une ligne à la fois dans le jeu de résultats d'une instruction.

    - ou -

    Extrayez plusieurs lignes à la fois dans le jeu de résultats en utilisant un curseur de bloc.

    - ou -

    Appelez SQLRowCount pour déterminer le nombre de lignes affectées par une instruction INSERT, UPDATE ou DELETE.

    Si l'instruction SQL peut avoir plusieurs jeux de résultats, appelez SQLMoreResults à la fin de chaque jeu de résultats pour savoir si des jeux de résultats supplémentaires doivent être traités.

  7. Une fois les résultats traités, les actions suivantes peuvent être nécessaires pour rendre le descripteur d'instruction disponible pour exécuter une nouvelle instruction :

    • Si vous n'avez pas appelé SQLMoreResults jusqu'à ce qu'il ait retourné SQL_NO_DATA, appelez SQLCloseCursor pour fermer le curseur.

    • Si vous avez lié des marqueurs de paramètres à des variables de programme, appelez SQLFreeStmt avec Option ayant la valeur SQL_RESET_PARAMS pour libérer les paramètres liés.

    • Si vous avez lié des colonnes de jeu de résultats à des variables de programme, appelez SQLFreeStmt avec Option ayant la valeur SQL_UNBIND pour libérer les colonnes liées.

    • Pour réutiliser le descripteur d'instruction, allez à l'Étape 2.

  8. Appelez SQLFreeHandle avec SQL_HANDLE_STMT comme HandleType pour libérer le descripteur d'instruction.