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 :

Erreur 'EOleException' après un refresh


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut Erreur 'EOleException' après un refresh
    Bonjour à tous,

    Voilà, je crée une petite application Delphi avec une base de données Access.

    Pour bien expliquer le problème, voici une partie des tables :

    Perso :
    - Id_Perso
    - Nom
    - Prenom
    - ...
    - FK_Id_Loc

    Localité :
    - Id_Loc
    - CP
    - Lib Loc

    Ensuite, dans l'application, j'ai fais une fiche qui m'affiche un DBgrid, des DBEdits et un DBNavigator. Ces éléments sont remplis via une requête qui affiche les personnes et les localités et codes postaux.

    Pour ce qui est des affichages, aucuns problèmes, tout est bien liés et affiché correctement.

    Par contre quand je fais un ajout d'une personne et que je clique sur "Post", rien ne s'affiche dans le DBgrid (ca doit être a cause d'un problème de refresh, c'est pas encore trop grave) mais justement, quand je clic sur le "refresh" du DbGrip, mon programme s'arrete avec un message d'erreur "EOleException" qui dit qu'il y a une erreur à cause d'une suppression ou modification de clé dans le magasin de donnée !"

    Qu'est-ce que cela signifie et comment y remédier ?

    En plus, quand je vais vérifier dans la base de données, l'ajout de l'enregistrement à bien eu lieu et tout semble correct !

    Je vous remercie,

    Marcant.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Bon, après avoir fait quelques tests, j'ai une idée sur la cause de l'erreur :

    Visiblement cela vient du faite que pour choisir la localité et le code postal j'utilise des DBlookupcomboboxs. Ceux-ci sont remplis via une table CP et pointe vers la requête et plus particulièrement sur FK_Id_Loc. (Histoire que quand je clique sur un, l'autre se positionne sur la bonne localité ou le bon code postal).

    Apparement, lors de l'enregistrement, la base de données se remplit correctement. Il y a juste le DBgrid qui laisse la localité et le code postal vide et alors, c'est au moment ou je veux faire un refresh que ca plante !

    Quelqu'un à une idée ?


    Autre bug nettement moins important :

    Quand je clic sur le "+" du DbNavigator, il me mets une ligne vide dans le DbGrip (normal) et tous les DbEdit sont blancs (Normal aussi), mais dès que je clic sur un DbEdit pour pouvoir remplir les renseignements de la personne à ajouter, le DbGrip et tous les DbEdits repointent sur le 1er enregistrement !!! Je dois repasser sur le "+" une fois de plus, pour que cette fois-ci, il laisse tout vide et que je puisse enfin remplir correctement les DbEdits.


    Marcant, qui avance d'un pas et recule de 2 :-(.

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Comment tu affiches les données dans ton dbgrid ?
    Via un TxxxQuery ou un TxxxTable ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Salut,

    Alors pour afficher mes données dans le Dbgrid, ca passe via une TADOTable qui est lui même relié à une requête de ma base de donnée.

    La requête c'est un Inner Joint qui lie Perso.Fk_Id_Loc à CP.Id_Loc.

    Voilà, merci de t'interressé à mon problème je commencais a dessespérer.


    Marcant.

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    "EOleException" qui dit qu'il y a une erreur à cause d'une suppression ou modification de clé dans le magasin de donnée !"
    Ce message est du que tu essaies de modifier les données d'une requete avec une jointure (au vu de ton explication), hors, il est impossible de faire des modifications sur une requete avec jointure.
    Le + du DbNavigator corrspond a un TAdoQuery.Append
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Ceci expliquant cela...

    Comment procéder alors ?

    Vu que sur ma fiche, je fais a la fois de l'affichage et de l'encodage via des DbLookupcombobox qui sont lier via une requete avec un Inner Join.

    En plus ce qui d'autant plus bizarre c'est que dans la base de donnée, tout se remplis correctement !
    Le choix effectué dans les DBLookupCombobox amene bien une FK_Id_Loc dans la table principale.
    Et l'erreur, ne se fait qu'au moment du refresh et pas de l'ajout.

    Le problème de l'ajout, ce n'est que le faite queje dois appuyer 2 fois dessus avant de pouvoir introduire mes données dans des édits blancs.


    Marcant.

Discussions similaires

  1. Erreur 1555 après un alter table/move tablespace
    Par Daily dans le forum Oracle
    Réponses: 4
    Dernier message: 11/10/2006, 11h39
  2. Erreur Systeme après installation de DELPHI
    Par tarbala dans le forum Delphi
    Réponses: 5
    Dernier message: 16/07/2006, 19h00
  3. [VB]erreur 70 apres inscription registre
    Par bast198 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 28/03/2006, 10h26
  4. [Mail] Eviter de reposter après un refresh
    Par angelinemm dans le forum Langage
    Réponses: 7
    Dernier message: 22/02/2006, 15h06

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