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

C++Builder Discussion :

2 messages sur DeleteError


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 39
    Par défaut 2 messages sur DeleteError
    J'ai 2 tables SQl liées par une foreign key delete restrict.
    Dans une DBGrid avec un navigateur, je gère la table parente
    Quand je tente la suppression, j'éxécute le code suivant :

    void __fastcall TRDCDM::T072_SFDeleteError(TDataSet *DataSet,
    EDatabaseError *E, TDataAction &Action)
    {
    if (E->Message.AnsiPos("SQL0532N"))
    {
    AnsiString Message = "Erreur Il y a des rangs dépendants, suppression impossible";
    Application->MessageBox(Message.c_str(),
    Application->Title.c_str(),
    MB_OK | MB_ICONSTOP);
    }
    }
    et j'obtient le message défini ci-dessus si le SQLCODE est SQL0532N
    je fais OK
    et un deuxième message apparait
    "Erreur SQL générale"
    [IBM][CLI Driver][DB2/NT]SQL0532N une ligne parente ne peut pas être supprimée car la relatuion <...> limite la suppresion
    Comment supprimer l'apparition de dexième message ?

  2. #2
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 39
    Par défaut 2 Messages sur le DeleteError
    J'ai trouvé la solution, il faut ajouter "Abort();" et "return;"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TRDCDM::T072_SFDeleteError(TDataSet *DataSet,
          EDatabaseError *E, TDataAction &Action)
    {
       if (E->Message.AnsiPos("SQL0532N"))
          {
          AnsiString Message = "Erreur\n Il y a des rangs dépendants, suppression impossible";
          Application->MessageBox(Message.c_str(),
                                  Application->Title.c_str(),
                                  MB_OK | MB_ICONSTOP);
          Abort();
          return;
          }
    }

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 25/11/2005, 09h52
  2. Réponses: 4
    Dernier message: 11/10/2005, 20h12
  3. Comment déterminer la fin d'un message sur le port serie ?
    Par zeddy23 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/01/2005, 05h12
  4. Réponses: 3
    Dernier message: 09/12/2004, 11h49
  5. Howto - Envoi message sur réseau
    Par Thomad dans le forum Windows
    Réponses: 2
    Dernier message: 31/03/2004, 16h46

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