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 :

EOleException suite à SELECT sur BDD Access


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 105
    Points
    105
    Par défaut EOleException suite à SELECT sur BDD Access
    Bonjour

    Je suis confronté à un problème très curieux.
    J'utilise Delphi 2007 pour Win32, et j'attaque une BDD ACCESS à l'aide d'un TADOCommand.
    Ma requête est la suivante :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Table1 WHERE Champ1="':"

    Suite à ça, j'ai une EOleException avec le message suivant :
    Objet Parameter défini de manière incorrecte. Des informations incohérentes ou incomplètes ont été fournies.

    Il semblerait que la séquence de caractères ': ne plaise pas, et même si l'on ajoute des caractères par exemple aaa'aaaa:aaa. En revanche aaa:aaa'aaa passe.

    Quelqu'un aurait-il une idée de l'origine du problème ?

    Par avance merci

  2. #2
    Membre averti Avatar de zemeilleurofgreg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 515
    Points : 346
    Points
    346
    Par défaut
    Attention que le caractère ' est le caractère début et fin de chaine de Delphi
    voir utilisation quotedstr()

  3. #3
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 105
    Points
    105
    Par défaut
    Le problème n'est pas lié au caractère quote, mais à la présence conjointe des 2 caractères ' et : dans cet ordre. S'ils apparaissent dans l'ordre inverse, l'exception n'est pas levée. L'erreur apparaît en insertion de données, comme en recherche.
    Sous ACCESS cette séquence de caractères est acceptée. J'ai par ailleurs effectué un test en attaquant la BDD à l'aide de VB, et aucune erreur n'apparaît.

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Le problème vient à mon avis du ':' dans ta commande. Il cherche certainement un paramètre qu'il n'arrive pas à résoudre.

    Essaye comme ceci à tout hasard:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Table1 WHERE Champ1=''':'

    Uniquement avec des quotes ('). A voir également si il ne faut pas basculer ParamCheck à False.

    @+ Claudius

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Sinon passe par un paramètre, ce sera peut-être plus logique:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from Table1 where Champ1 = :P1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      with ADOCommand1 do
      begin
        Parameters.ParamByName('P1').Value := ''':';
        Execute;
      end;
    @+ Claudius

  6. #6
    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
    Le problème c'est que les : sont utilisés pour la gestion des paramètres dans les composants bases de données de delphi.
    Ce qui peut générer un problème avec ta requête.
    Essaie de faire la même requête, mais d'annuler la vérification de paramètres des composants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With AdoCommand do
    begin
      Close;
      ParamCheck := False;
      // etc ...
    end;

  7. #7
    Membre régulier
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 105
    Points
    105
    Par défaut
    Excellent ! Merci de vos réponses.
    Le problème est résolu en positionnant ParamCheck à False.
    Ça me retire une sacré épine du pied. Merci encore.

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

Discussions similaires

  1. [ODBC] Select sur fichier ACCESS MDB PHP/5.0 Linux Debian
    Par Stef.web dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 30/01/2014, 16h08
  2. Retour commande SELECT sur BDD Firebird
    Par BlackPulsar dans le forum JDBC
    Réponses: 0
    Dernier message: 24/04/2010, 16h36
  3. Accent sur bdd access
    Par droudrou2000 dans le forum ASP
    Réponses: 3
    Dernier message: 12/08/2009, 15h16
  4. [C++B5]Problème avec une requëte SQL sur BDD ACCESS
    Par Sleeping Lionheart dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/04/2008, 09h03
  5. Requête SQL avec paramètre sur BDD Access
    Par BigMike dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/06/2007, 12h21

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