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

Lazarus Pascal Discussion :

MS Access : gestion des erreurs de clés [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 68
    Points : 69
    Points
    69
    Par défaut MS Access : gestion des erreurs de clés
    Bonjour à tous,

    Je voudrais gérer les erreurs survenant sur les problèmes de clés, comme par exemples les clés dupliqués.

    J'ai une fiche avec un DBNavigator avec des champs dbedit.

    Dans mon SQLQuery, je défini le code suivant dans mon événement OnPostError

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TDM.SQL_ComptesPostError(DataSet: TDataSet; E: EDatabaseError;
      var DataAction: TDataAction);
    begin
     
      ShowMessage (E.Message);
      DataAction :=  daAbort;
     
    end;
    A des fins de test, quand je rentre une clé dupliqué, l'appli déclenche un ODBCexception.

    Le ShowMessage (E.Message) n'apparait pas et l'appli s'arrête.

    Comment traiter proprement une ODBCException ?

    Merci d'avance

    Jazz

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 68
    Points : 69
    Points
    69
    Par défaut
    J'ai trouvé une solution satisfaisante

    L'erreur se déclenche à l'appel de la méthode ApplyUpdates du SQLQUERY

    Le code de réponse est à implémenter dans l’événement onUpdateError du
    SQL QUERY

    Ca donne le code suivant :


    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
    16
    17
    18
    19
    20
    21
    22
    23
     
    procedure TDM.SQL_ComptesUpdateError(Sender: TObject; DataSet: TCustomBufDataset;
      E: EUpdateError; UpdateKind: TUpdateKind; var Response: TResolverResponse);
    begin
      case UpdateKind of
        ukModify: MessageDlg('Erreur Modification',
            'Erreur de modification d''un compte ',
            mtError, [mbCancel], 0);
     
        ukInsert: MessageDlg('Erreur Insertion',
            'Erreur en Ajout d''un compte ' + chr(13) +
            'Un compte existe déjà',
            mtError, [mbCancel], 0);
     
        ukDelete: MessageDlg('Erreur Suppression',
            'Erreur de suppression d''un compte ',
            mtError, [mbCancel], 0);
      end;
     
      Response := rrAbort;
      DataSet.Refresh;
     
    end;
    y a pas ... Lazarus, c'est de la balle

    Jazz

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

Discussions similaires

  1. Gestion des erreurs Access
    Par quentin57 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/05/2010, 12h41
  2. [AC-2003] Gestion des erreurs - Rapport d'erreurs sous access
    Par mbellemax dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/10/2009, 10h46
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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