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 :

BDE avec access : EDBEnginError [Non suivi]


Sujet :

C++Builder

  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut BDE avec access : EDBEnginError
    Bonjour,

    J'ai fait il y a 2 jours cette fonction qui fonctionnait tres bien jusqu'à maintenant. Elle va ecrire des choses dans les champs d'une table...Du super simple donc !
    Depuis cet apres midi, elle me génère une exception EDBEnginError "Edition impossible, un autre utilisateur à modifié l'enregistrement".

    Cela ne me l'a jamais fait, j'ai rien changé et surtout l'enregistrement que je demande ici est bien réalisé malgré le plantage !

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    void __fastcall TForm1::EcrireTempsDepart(int IDcourse,int HeureDepart)
    {
     bool present ;  
     int heures;
     int minutes;
     int secondes;
     int centiemes;
     TLocateOptions Option; // Creer un objet option
     Option << loCaseInsensitive; // Rajout de l'option "ne fait pas attention à la casse"
     heures = HeureDepart/360000;
     minutes = (HeureDepart - (heures*360000))/6000 ;
     secondes = (HeureDepart - (heures*360000)-(minutes*6000))/100 ;
     centiemes = HeureDepart - (heures*360000)-(minutes*6000) - (secondes*100);
     
      // ouverture connexion, bdd et table
      Session1->Open();
      Database1->Open();
      Table_Categories->Open();
     
    //test presence de l'enregistreent
     present = Table_Categories->Locate("Numcourse",IDcourse,Option);
      if (present == true){
      Table_Categories->Edit(); // Positionne la table en mode Edition (cet enregistrement créé, donc)
      Table_Categories->FieldByName("HeureDepartReelle")->Value = HeureDepart;
      Table_Categories->FieldByName("hd")->Value = heures ;
      Table_Categories->FieldByName("md")->Value = minutes ;
      Table_Categories->FieldByName("sd")->Value = secondes ;
      Table_Categories->FieldByName("cd")->Value = centiemes ;
      Table_Categories->Post(); //validation
      }
      else{
      }
      // on ferme connexion, bdd et table
      Table_Categories->Close();
      Database1->Close();
      Session1->Close();
    }
    Je n'arrive pas à comprendre d'ou vient le bug, j'ai pensé à un problème de temps d'acces et j'ai pour cela ajouté des tempos un peu partout...mais rien.

    Au sec.

    Merci par avance

  2. #2
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    petite precision que je viens de découvrir, ca ne me fait pas le bug sur tous mes pc...

  3. #3
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,

    En consultant - a tout hasard - les infos sur FieldByName(...), j'ai trouvé ceci :
    Conseil : Pour obtenir ou modifier la valeur d'un champ donné, appelez FieldValues, la méthode par défaut des ensembles de données, au lieu d'utiliser FieldByName.
    Je n'affirme rien mais peut être faudrait-il tester dans ce sens, puisque FieldByName semble plutôt fait pour
    obtenir les informations sur un champ quand vous en connaissez le nom
    En espérant t'aider,
    @ +

  4. #4
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Merci pour la remarque

    je viens de faire la modification sur deux fonctions concernée qui avaient des FieldByName.

    L'une fonction toujours aussi bien

    L'autre, dont il est question ici, me fait toujours le meme bug...

    Aurte chose ??

    Merci

  5. #5
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,

    Autre question....
    Tu n'as pas besoin de StartTransaction() et Commit() sur ton TDatabase pour 'valider' la modif de données ?


    Bon, d'ac, ça n'a rien a voir avec le plantage lors du passage en mode Edition de la table mais bon....

    Je pense que tu auras déja vérifier ce que je vais dire mais bon, je le dis quand même : il n'y a nulle part une condition ou qqchose qui puisse faire qu'une autre partie de ton ai déja mis la table en Edition avant le passage dans cette fonction ?

    @ +

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/09/2006, 16h47
  2. [BDE] Installation du BDE avec le SP2 de XP
    Par marc59 dans le forum Bases de données
    Réponses: 6
    Dernier message: 23/09/2004, 10h43
  3. BDE et Access 2003
    Par pascal2vichy dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/07/2004, 13h40
  4. Réponses: 10
    Dernier message: 30/06/2004, 13h00
  5. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 12h02

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