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 :

TClientDataSet exception :"Opération non applicable."


Sujet :

C++Builder

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par défaut TClientDataSet exception :"Opération non applicable."
    Bonjour,
    j'ai un application ou il y a :
    un sgbd firebird 4 table
    3 dbgrids
    3 TClientDatset

    Veillez s'il vous plait regarder l'image "Datamodule.JPG " pour voir les composants présents : (si l'image n'apparait pas )




    Ces Dgrids sont liés via le maitre/esclave tel que sont lié dans le sgbd

    Lorsque dans la table maitre(Personne) j'ajoute /je supprime ou je modifie
    que se soit en cache ou le faire réellement les écritures/modification/suppression dans la base de données ne posent pas problème.

    La ou j'ai un bug, c'est quant j'ajoute un enreg dans la table esclave (MAIL)
    l'ajout en cache se fait bien cependant lorsque je quitte

    j'ai ce message :
    Le projet a provoqué une classe d'exception EDBClient avec le message 'Opération non applicable.'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.
    souvent après j'ai une violation d’accès

    Dans le destructeur de TDataModule j'avais mis du code celui faisait des close() des DataSet , j'ai complétement mis en commentaire ce code et re compilée (rebuild all) et j'ai toujours la même erreur

    C'est toujours a ce moment la que se produit l'erreur

    lorsque j'ajoute un élément dans la table maitre (Personne) pas de pb


    Voici le code d'ajout table esclave MAIL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DataModule1->CDSMail->Append();
    DataModule1->CDSMail->FieldByName("MAIL")->AsString="toto@free.fr";
    DataModule1->CDSMail->Post();
    after Insert:


    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 TDataModule1::CDSMailAfterInsert(TDataSet *DataSet)
    {
    CDSMail->AggregatesActive=true;
     
      if(VarIsNull(CDSMail->Aggregates->Items[0]->Value())){
          id=0;
      }else{
        id=CDSMail->Aggregates->Items[0]->Value() ; // lit la valeur du champ en cours
      }
     
    _F_ID_MAX_MAIL=id+1 ; // var globale portée classe TDataModule memorise ID_MAIL
    CDSMail->FieldByName("ID_MAIL")->AsInteger=_F_ID_MAX_PERS;
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    __fastcall TDataModule1::~TDataModule1()
    {
    //Destructeur : liberation de ressources
    //FreeDataModule();
    }
    Conclusion
    si j'ajoute un ereng dans la table secondaire en cache , je quitte plantage


    D’où peut venir cette exception ?

    merci je tourne en rond

    en vous remerciant
    Images attachées Images attachées  

Discussions similaires

  1. Opération non applicable sur un TTable
    Par fpascal dans le forum C++Builder
    Réponses: 15
    Dernier message: 22/09/2008, 14h32
  2. Message d'erreur: 'Opération non applicable'
    Par souminet dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/11/2007, 12h06
  3. Réponses: 7
    Dernier message: 03/05/2007, 16h30
  4. [D7][Oracle 8i] "Opération non applicable" + DataS
    Par Magnus dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/11/2005, 08h36
  5. EBDClient "Opération non applicable"
    Par AKSEL dans le forum Composants VCL
    Réponses: 1
    Dernier message: 15/09/2005, 16h34

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