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 :

Problème incongru : EOleException


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut Problème incongru : EOleException
    Bonjour,
    je rencontre depuis hier un problème lors de l'exécution de requête "INSERT" & "UPDATE"
    Je ne sais pas comment le résoudre tellement le message d'erreur est explicite :/

    EOleException with message : 'Le fournisseur actuel ne prend pas en charge les jeux d'enregistrements multiples renvoyés à partir d'une exécution simple'

    C'est le code suivant (et pas rien que lui car 3 autres requêtes dans le même cas) qui génère l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text := 'UPDATE Solde SET Bilan =' + FloatToStr(total) + 'WHERE Date_solde = ' + CaisseGrid.Cells[1,1];
    ADOQuery1.SQL.ExecSQL;
    ADOQuery1.Open;
    Je pourrais préciser le code qui va autour si nécessaire mais à priori le problème vient bien de la requête en elle même...

    Si vous avez une idée.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 683
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Il manque au minimum un espace devant WHERE.

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Privilégie les requêtes paramètrées aussi, cela aurait évité la coquille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text := 'UPDATE Solde SET Bilan = :ParamBilan WHERE Date_solde = :ParamDate';
    ADOQuery1.Parameters.ParamByName('ParamBilan').Value := total;
    ADOQuery1.Parameters.ParamByName('ParamBilan').Value := StrToDate(CaisseGrid.Cells[1,1]);
    ADOQuery1.ExecSQL;
    ADOQuery1.Open;
    Le Paramètre va typé correctement les différentes valeurs et tu auras moins de soucis avec les formats de date tellement différent selon la DB (que l'on ne connait pas dans ton cas)

    Cela n'existe pas ! Je suppose que tu as simplifié ton code pour le forum
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut
    Oui désolé j'ai recopié mon code la main car pas sur le bon PC pas borland et tout donc désolé pour l'erreur et pour l'espace manquant avant le WHERE.

    EDIT : Meme après utilisation des parameters, l'erreur réside toujours. Précision ma date est au format texte dans ma base de données qui est une base sous Access 2007.
    J'ai donc retiré le StrToDate mais même combat, même erreur. :/

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    As-tu essayé la requête directement dans Access 2007 ?
    Peut-être une problème de . et , dans ton float ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut
    mon float ne possède pas de virgule ni de point, je commencais par des nombres positifs et négatifs sans virgules.
    Donc le problème ne vient pas de la non plus

    EDIT : Problème résolu !

    --> Ne jamais mettre :
    ADOQuery.ExecSQL;
    ADOQuery.Open;

    Cela revient à executer 2 fois la requête donc elle plante car ADOQuery ne peut pas contenir 2 fois un résultat de requête.

  7. #7
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    salut , comment vous éte connecté a la base de données [access 2007] , j'aimerai connaitre votre méthode .
    j'ai essayé avec[ access 2007 + D7] après avoir installé le driver que j'ai télécharger sur microsoft mais sa n'a pas marché. merci

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    lol, je n'avais même pas vu le Open, c'est surtout que l'on ne peut utiliser Open qu'avec un SELECT !

    Trop la honte de ne pas l'avoir vu !

    Configure un Alias sur l'Admin ODBC puis dans Delphi sur le ADOConnection modifie avec l'assitant la ConnectionString
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut
    J'avoue ne pas avoir bien gérer sur cette erreur .

    Pour la connection à la base sous Access 2007 moi j'ai fait un peu comme lui :

    http://thierryaim.developpez.com/tut...lphiperso/#LII

    Cette page explique bien le fonctionnennement pour Access. Moi j'ai fait une connexion directe sans passer par l'ODBC.

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

Discussions similaires

  1. Problèmes de rendu incongru
    Par jacquesprogram dans le forum Flash
    Réponses: 14
    Dernier message: 01/10/2006, 11h50
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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