Partager via


Procédure : traiter des codes de retour et des paramètres de sortie (ODBC)

Les procédures stockées SQL Server peuvent avoir des codes de retour et des paramètres de sortie de type entier. Les codes de retour et paramètres de sortie sont envoyés dans le dernier paquet du serveur et ne sont pas disponibles pour l'application tant que SQLMoreResults n'a pas retourné SQL_NO_DATA. Si une erreur est retournée à partir d'une procédure stockée, appelez SQLMoreResults pour passer au résultat suivant tant que SQL_NO_DATA n'est pas retourné.

Pour obtenir un exemple qui indique comment traiter un code de retour et un paramètre de sortie, consultez ProcessReturnCodes.cpp, que vous pouvez télécharger à partir de la page Téléchargements SQL Server sur MSDN. Cet exemple a été développé à l'aide de Microsoft Visual C++ 2005 et conçu pour la version 3.0 ou ultérieure d'ODBC.

Remarque relative à la sécuritéRemarque relative à la sécurité

Si possible, utilisez l'authentification Windows. Si l'authentification Windows n'est pas disponible, invitez les utilisateurs à entrer leurs informations d'identification au moment de l'exécution. Évitez de stocker ces informations dans un fichier. Si vous devez rendre les informations d'identification persistantes, chiffrez-les avec l'API de chiffrement Win32.

Pour traiter des codes de retour et des paramètres de sortie

  1. Construisez une instruction SQL qui utilise la séquence d'échappement ODBC CALL. L'instruction doit utiliser des marqueurs de paramètre pour chaque paramètre d'entrée, d'entrée/sortie et de sortie et pour la valeur de retour de la procédure (le cas échéant).

  2. Appelez SQLBindParameter pour chaque paramètre d'entrée, d'entrée/sortie et de sortie et pour la valeur de retour de la procédure (le cas échéant).

  3. Exécutez l'instruction avec SQLExecDirect.

  4. Traitez les jeux de résultats jusqu'à ce que SQLFetch ou SQLFetchScroll retourne SQL_NO_DATA lors du traitement du dernier jeu de résultats ou jusqu'à ce que SQLMoreResults retourne SQL_NO_DATA. À ce stade, les variables liées au code de retour et aux paramètres de sortie sont remplies avec les valeurs de données retournées.