> Tech > Etape 1 : Définir les sorties attendues

Etape 1 : Définir les sorties attendues

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Chaque procédure stockée aboutit à  une sortie : valeur de renvoi, message d'erreur système, ou autre. La plupart des procédures effectuent aussi des opérations sur la base de données qui produisent d'autres genres de sorties. Principaux exemples : des procédures INSERT qui ajoutent des enregistrements de tables et des

Etape 1 : Définir les sorties attendues

procédures SELECT
qui génèrent des jeux de résultats.
Les procédures stockées peuvent
aussi engendrer des messages d’erreur
ou des codes d’état personnalisés,
renvoyer des valeurs, imprimer des
instructions, ou produire des paramètres.
La procédure de consultation,
usp_lookupPrice, que montre le listing
2, peut produire toutes ces différentes
sorties. La procédure recherche un
produit, définit un paramètre de sortie
égal au prix unitaire du produit puis
renvoie un code d’état de 0, indiquant
la bonne exécution.

Commençons par définir les résultats
en examinant le paramètre de sortie
@product_price. Le premier résultat
attendu est le renvoi du prix du
produit au programme appelant. Pour
mieux voir ce qui se passe dans ce scénario
de test, utilisons le code du listing
3 destiné à  peupler la table
Products. On utilisera ensuite le code
du listing 4 pour exécuter la procédure
usp_lookupPrice.

Selon le product_id utilisé pour
tester usp_lookupPrice, le résultat attendu
pour @product_price sera
$19.95, $29.95, $39.95, $11.00, ou
NULL. Mais que se passe-t-il si l’on sélectionne
un product_id invalide ? Le
résultat dépendra de la valeur de test
ou autre caractère clavier fourni à 
usp_lookupPrice. Par exemple, en entrant
un entier invalide, 11 par
exemple, comme product_id, on évoquera
une valeur de renvoi NULL. L’entrée d’un caractère alphabétique
tel que a ou f génèrera un message
d’erreur Server : Msg 8114 : Error
converting data type nvarchar to int. Et
la non-saisie d’un product_id ou d’un
caractère spécial tel que & causera un
message d’erreur Server : Msg 170 :
Incorrect syntax near ‘,’. Par conséquent,
selon les valeurs de test pour
product_id, on peut s’attendre à  ce
que l’exécution de usp_lookupPrice
résulte en un product_price valide
(quand product_id est 1, 2, 3 ou 4), un
product_price nul ou un message TSQL
signalant une erreur de conversion,
une erreur de syntaxe, ou autre
erreur système.

Voyons maintenant les instructions
de renvoi dans usp_lookupPrice. On
peut utiliser une instruction de renvoi
pour passer le contrôle de traitement
des erreurs à  un programme appelant
ou à  une procédure en attribuant des
codes d’état entiers personnalisés à 
différentes conditions d’erreur. On
peut programmer le processus appelant
pour qu’il traite le code résultant
d’une rencontre avec l’un de ces codes
d’état, à  votre gré, y compris en l’ignorant.

Le résultat attendu d’une instruction
de renvoi est 0 – le code d’état par
défaut pour une procédure qui s’exécute
bien. Outre 0, une instruction de renvoi peut renvoyer les codes d’état
réservés Microsoft de -1 à  -99, ainsi que
tout autre code personnalisé de notre
choix. Usp_lookupPrice contient deux
codes d’état personnalisés, 10 et 11,
donc les valeurs de renvoi attendues
sont

  • 0, quand aucune erreur ou avertissement
    ne se produit

  • 10, quand aucun prix unitaire n’est
    trouvé

  • 10, quand le prix unitaire est nul
  • -1 à  -99, quand usp_lookupPrice entraîne
    un code d’état réservé
  • Téléchargez cette ressource

    Guide de technologie 5G pour l’entreprise

    Guide de technologie 5G pour l’entreprise

    Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

    Tech - Par Renaud ROSSET - Publié le 24 juin 2010