1 / 26

Test de lecture

Test de lecture. #1 Les erreurs relatives aux concepts d’affaires (du type un étudiant a un matricule de 8 chiffres) doivent être définis par l’usager (vrai ou faux) ?

Download Presentation

Test de lecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Test de lecture #1 Les erreurs relatives aux concepts d’affaires (du type un étudiant a un matricule de 8 chiffres) doivent être définis par l’usager (vrai ou faux) ? #2 Une erreur générée dans un sous-bloc (sauf la procédure application_error) entraîne la fin de tout le programme (vrai ou faux) ? #3 SQLERM et SQLCODE sont 2 mots qui peuvent remplacer la procédure RAISE_ APPLICATION_ERROR (Vrai ou Faux) ? #4 Si on veut traiter une erreur X, on écrit : _1_ X _2_ dans la zone exception? #5 Quel mot est utilisé pour dire toutes les autres erreurs non définies par l’usager ?

  2. DEVOIR 1 • BRAVO ! • Attention aux noms des variables : • Number n_ • Varchar2 v_ • Cursor cur_ • RowId row_ • Char c_ • Long l_ • Date d_

  3. DEVOIR 2 • Utilisation de curseurs • Update • Delete

  4. VALIDATION DES DONNÉES ET GESTION D’ERREURS Par : Joël Huot

  5. À FAIRE • Lectures : • Documentation sur les triggers • Documentation sur les procédures et les fonctions • Leason 8 Database Triggers • Article Oracle sur les Triggers

  6. À FAIRE • Survoler : • Elmasri & Navathe 734-744

  7. À FAIRE • Exercices : • Valider les champs suivants dans le formulaire FM_Clients • No Client • No téléphone • Courriel • Code Postal • Gestion d’erreurs pour programme Monnaies (Version 3) entre 9hrs et 17hrs pou l’usager commis

  8. ** À FAIRE ** • GIS 855 : TOUT !!!

  9. TRAVAIL GIS 855 • Mettre des données dans votre BD • Préparer des programmes et menus • Compléter les programmes avec routines de validation appropriées

  10. TRAVAIL GIS 855 • Secrétariat de programme : responsable des notes inscrites... • Étudiant : l’étudiant s’inscrit lui-même aux cours qu’il désire suivre... • Département... • Régistraire ... • Administration de la faculté... • Il vous appartient d’imaginer (avec réalisme) les règles d’affaires à inclure

  11. TRAVAIL GIS 855 • Maintenance des instructeurs (FORM) • Maintenance des étudiants (FORM) • Enregistrement des étudiants dans les cours (FORM) • Inscription des notes (FORM) • Liste sommaire des profs.. l'usager devra spécifier le département désiré (sql Plus) • Liste sommaire des personnels (REPORT) • Liste complète des personnels (REPORT) • Relevé détaillé de notes (REPORT) • Liste de contrôle des professeurs (en sql*plus)

  12. Qu’est-ce qu’on peut valider • Le format • Le contenu • L’existence • Le droit de faire l’opération (usager) • Les opérations à faire SI ça arrive

  13. LE FORMAT • Ne demande pas de ressources systèmes • Les différents formats • Number to_number • Char to_char • Varchar2 to_char • Date to_date

  14. LE CONTENU • Ne demande pas de ressources systèmes : • No_client devrait être cl0000-00 • Le code postal doit être A9A 9A9 • La date doit être antérieure à la date d’aujourd’hui • Le pays doit être en Amérique

  15. L’EXISTENCE • Demande des ressources systèmes minimales • Si le tuplet existe (tester no, nom, tel…) • Si le tuplet correspondant existe (no_client, no_produit…. Pour commande …. )

  16. LES DROITS • On pourrait n’autoriser l’accès à une table qu’entre 9hrs et 17hrs… • Un utilisateur pourrait être empêché de faire des opérations d’update, de delete ou d’insert… • On pourrait vérifier si personne ne bloque les tuplets pour update

  17. Si ça arrive DO • Demande au serveur de vérifier les opérations sur la table Nous verrons plus en détail avec les triggers • On pourrait contrôler localement les actions à faire… • Si on delete commandes, il faut supprimer produits_commandes

  18. • Dans un programme PLSQL exécutable dans SQL*Plus • Par étape, de celui qui demande le moins de ressources à celui qui en demande le plus • Dans Form ou Report… appliqué sur des évènements (comme VB)

  19. ZONE D’EXCEPTION • Exception • Utilisé seulement quand il y aune erreur de générée • Raise application error (-20001, ‘Mauvais Toto’); • Erreur Oracle

  20. Exception Oracle Error SQLCODE Value ACCESS_INTO_NULL ORA-06530 -6530 COLLECTION_IS_NULL ORA-06531 -6531 CURSOR_ALREADY_OPEN ORA-06511 -6511 DUP_VAL_ON_INDEX ORA-00001 -1 INVALID_CURSOR ORA-01001 -1001 INVALID_NUMBER ORA-01722 -1722 LOGIN_DENIED ORA-01017 -1017 NO_DATA_FOUND ORA-01403 +100 NOT_LOGGED_ON ORA-01012 1012 PROGRAM_ERROR ORA-06501 -6501 ROWTYPE_MISMATCH ORA-06504 -6504 SELF_IS_NULL ORA-30625 -30625 STORAGE_ERROR ORA-06500 -6500 SUBSCRIPT_BEYOND_COUNT ORA-06533 -6533 SUBSCRIPT_OUTSIDE_LIMITORA-06532 -6532 SYS_INVALID_ROWID ORA-01410 -1410 TIMEOUT_ON_RESOURCE ORA-00051 -51 TOO_MANY_ROWS ORA-01422 -1422 TRANSACTION_BACKED_OUT ORA-00061 -61 VALUE_ERROR ORA-06502 -6502 ZERO_DIVIDE ORA-01476 -1476

  21. ZONE D’EXCEPTION When exception_name Then statements; When others Then statements;

  22. Erreurs de l’usager Declare Erreur_toto exception; c_toto varchar2(20) := 'bonjour toto'; Begin Raise Erreur_toto; Exception When erreur_toto then dbms_output.put_line (c_toto); End;

  23. Gestion d’erreur -- VARIABLES D'INFORMATION v_info varchar2(500); v_test number(1); erreur EXCEPTION; BEGIN -- TESTER SI LES VALEURS ENTRÉES SONT VIDES v_info := 'Aucun numéro de lot n''a été entré.'; IF LTRIM(v_no_lot_test) IS NULL THEN RAISE erreur ; END IF; EXCEPTION WHEN erreur THEN Raise_application_error(-20010,v_info); END;

  24. FONCITONS VEDETTES • Fonctions de formatage : • To_char(number()) • To_date(char, ‘dd-mon-yy ’)) • To_number(char()) • LTrim ()

  25. FONCITONS VEDETTES • SQLCODE • SQLERM

  26. FORMS / REPORTS • Les modules (blocs) sont générés soit par Designer ou encore à la main • Designer (selon les modèles) • À la main (même chose qu’un formulaire Access ou VB) • Programmation événementielle avec des « triggers »

More Related