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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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 969
    Détails du profil
    Informations personnelles :
    Localisation : Autre

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

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 125
    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 confirmé
    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
    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
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 125
    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 confirmé
    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
    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 : 54
    Localisation : Algérie

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

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    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

+ 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, 12h50
  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, 15h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 12h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 22h11

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