IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

[ADO][ACCESS] Recupération du message d'erreur


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club Avatar de samlerouge
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 58
    Points : 66
    Points
    66
    Par défaut [ADO][ACCESS] Recupération du message d'erreur
    hello,
    J'ai un Ttable connecté via ADO à une db ACCES. (Avec Delphi 7)

    J'ai un code dans PostError qui affiche un message personnalisé,
    le voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure TdmCuisinePlus.tblCategoriePostError(DataSet: TDataSet;
      E: EDatabaseError; var Action: TDataAction);
    var
      sNomCat:String;
      begin
      sNomCat:=FrmMaintenanceCategorie.dbtCategorie.EditText;
     
      E.Message := 'Erreur d''insertion :' + sLineBreak + 'La catégorie '+sNomCat+' existe déjà '+sLineBreak+ 'Veuillez entrer une nouvelle catégorie';
    ShowMessage(e.Message);
     
     Action := daAbort;
    FrmMaintenanceCategorie.dbtCategorie.Clear;
      FrmMaintenanceCategorie.dbtCategorie.SetFocus;
     
    end;
    Le problème est que ce message vaut si on veut insérer un champs qui existe déjà (Le champs en question est indexé sans doublon dans ACCESS).
    Si une erreur de type champs vide ou autres intervient c'est le même message qui s'affiche.

    J'ai regarder dans l'aide d'ACCESS, il y a un liste de code d'erreur de Microsoft Jet.

    Mais voila, comment fait -on pour capturer quelle erreur a été déclenchée grâce au code d'erreur?

    Merci de votre aide
    Windev-Webdev - Oracle- PLSQL
    est l'ami de tout le monde

  2. #2
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    plutôt que de bricoler e.message, ce qui l'écrase... tu n'a qu'à afficher directement e.message et tu auras le bon message à chaque fois :-) !

  3. #3
    Membre du Club Avatar de samlerouge
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 58
    Points : 66
    Points
    66
    Par défaut
    Ca dépend pour qui tu fais le projet. Dans mon cas qui est un projet d'école, donc c'est pour moi, c'est vrai je peux avoir les messages d'erreurs standards.

    Mais si tu fais un projet plus professionnel que tu désires vendre, il est plus conviviale pour l'utilisateur de recevoir un message d'erreur adéquat.

    En ce qui concerne de la construction du E.message si c'est du bricolage, c'est juste un essai.

    J'ai parcouru longtemps le forum et était voir http://www.delphi.about.com (cours ADO) mais personne ne parles du fait de pouvoir gérer les erreurs exact d'Access.

    Merci comme même du conseil
    Windev-Webdev - Oracle- PLSQL
    est l'ami de tout le monde

  4. #4
    Membre du Club Avatar de samlerouge
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 58
    Points : 66
    Points
    66
    Par défaut
    Pour être un peu plus clair j'aimerais intercepter directement le numéro de l'erreur d'ACCES comme le code d'erreur d'ORACLE dans du post ci-dessous:
    http://www.developpez.net/forums/vie...acle+exception ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try 
      ... 
      except 
        on E: EOracleError do begin 
          if E.ErrorCode = -20002 then begin 
            MessageDlg('Mon message', mtInformation, [mbOk], 0); 
          end; 
        end; 
      end;
    Existe -t-il la même solution pour ACCESS?
    Windev-Webdev - Oracle- PLSQL
    est l'ami de tout le monde

  5. #5
    Membre du Club Avatar de samlerouge
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 58
    Points : 66
    Points
    66
    Par défaut


    J'ai fais quelques recherche et voila ma conclusion:

    Comme j'ai appliqué des régles de gestion dans ACCES, du style pas de doublon, pas de champs vide ou bien la taille pour un champs donné.
    Lorsque depuis Delphi, j'ai un erreur c'est donc les messages ACCES qui s'affiche.

    Etant donné qu'il ne doit pas être possible de récupérer le n° d'erreur de Microsoft Jet. Mais seulement le message d'erreur.

    J'ai donc opté pour une solution plus simple. En effet, j'affiche un message personnalisé depuis Delphi si une des regles n'est pas respectée.

    Comme ca j'ai bien un message d'erreur personnalisé spécifique (doublon, champs vide ou autres.)
    Du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Try
    INSERT .....
    EXCEPT
     IF doublon() THEN showmessage
     ELSIF vide() THEN showmessage
     .....
     .....
     END;
    end;

    Merci
    Windev-Webdev - Oracle- PLSQL
    est l'ami de tout le monde

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recupération du message d'erreur d'un Serveur
    Par Oncle_Pete dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/07/2008, 11h40
  2. PHP + Access : gérer un message d'erreur
    Par polothentik dans le forum Langage
    Réponses: 4
    Dernier message: 13/05/2008, 11h27
  3. message d'erreur lors de mise à jour d'une BD access
    Par Abydos Business Group dans le forum Access
    Réponses: 2
    Dernier message: 25/01/2006, 16h36
  4. comment peut on intercepter un message d'erreurs Access?
    Par atmitab3 dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/11/2005, 12h11
  5. [ADO-Access] ADOQuery1.Open (SELECT) -> Erreur non spécif
    Par david_chardonnet dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/11/2004, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo