Comment gérer les erreurs sql avec sqlstate

SQLSTATE spécifie un grand nombre de conditions anormales dans SQL. SQLSTATE est une chaîne de cinq caractères dans lequel seules les lettres majuscules UNE par Z et les chiffres 0 à 9 sont des caractères valides. La chaîne de cinq caractères est divisé en deux groupes: un code de classe à deux caractères et un code de sous-classe de trois caractères.

Le code de classe est titulaire d`un statut après la fin d`une instruction SQL. Cette situation pourrait indiquer la réussite de la déclaration, ou l`un d`un certain nombre de grands types de conditions d`erreur. Le code de la sous-classe fournit des détails supplémentaires sur cette exécution particulière de la déclaration.

Le standard SQL définit un code de classe qui commence par les lettres UNE par H ou les chiffres de 0 à 4 donc, ces codes de classe signifient la même chose dans toute mise en œuvre. codes de classe qui commencent par les lettres je par Z ou les chiffres 5 à 9 sont laissées ouvertes pour définir implémenteurs car la spécification SQL ne peut pas prévoir toutes les conditions qui peuvent se présenter dans chaque mise en œuvre.

Cependant, les développeurs devraient utiliser ces codes de classe non standard aussi peu que possible pour éviter les problèmes de migration d`un SGBD à l`autre. , Les développeurs devraient idéalement utiliser les codes standard la plupart du temps et les codes non standard que dans les circonstances les plus inhabituelles.

Video: TUTO PHP - #9 Première requête SQL (SELECT)

Un code de classe 00 indique la réussite. Code de classe 01 signifie que l`instruction exécutée avec succès, mais produit un avertissement. Code de classe 02 indique une condition d`absence de données. Tout SQLSTATE code de classe autre que 00, 01, ou 02 indique que l`instruction n`a pas été exécuté avec succès.

Car SQLSTATE mises à jour après chaque opération SQL, vous pouvez le vérifier après chaque exécution d`une instruction. Si SQLSTATE contient 00000 (Réussite), vous pouvez procéder à l`opération suivante. Si elle contient toute autre chose, vous voudrez peut-être à la branche de la ligne principale de votre code pour gérer la situation. Le code classe spécifique et le code sous-classe qu`un SQLSTATE déterminer contient des que vous devriez prendre de plusieurs actions possibles.

Video: TUTO HeidiSQL - SQL Manager

Utiliser SQLSTATE dans un programme de langue du module, inclure une référence à dans vos définitions de procédure, comme dans l`exemple suivant:

PROCÉDURE NUTRIMENTS (SQLSTATE,: foodname CHAR (20),: calories SMALLINT,: protéines DECIMAL (5,1),: la graisse DECIMAL (5,1) ,: carbo DECIMAL (5,1)) INSERT INTO LES ALIMENTS (FoodName, calories , protéines, lipides, glucides) VALUES (: foodname,: calories, protéines:,: gras,: carbo) -

A l`endroit approprié dans votre programme de langage procédural, vous pouvez faire des valeurs disponibles pour les paramètres (peut-être en les sollicitant de l`utilisateur) puis appeler la procédure. La syntaxe de cette opération varie d`une langue à l`autre, mais il ressemble à ceci:

foodname = "Gombo, bouilli" -calories = 29 = 2,0-protéine -Fat = 0,3 = 6,0 -carbo éléments nutritifs dans (état, foodname, les calories, protéines, lipides, carbo) -

L`Etat de SQLSTATE est retourné dans la variable Etat. Votre programme peut examiner cette variable et prendre les mesures appropriées en fonction sur le contenu de la variable.

Articles connexes