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 :

[MYSQL] [DELPHIXE] EOLeException AdoQuery Win 7 64 bits


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2003
    Messages : 7
    Par défaut [MYSQL] [DELPHIXE] EOLeException AdoQuery Win 7 64 bits
    Bonjour,

    J'utilise delphi XE et MySQL 5.0.51a sur windows 7 64 bits.

    Une exception est levé à la deuxième ligne:
    "Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      ADOQuery1.Close;
      ADOQuery1.SQL.Text := 'select * from ma_table where id=:id';
      ADOQuery1.Parameters.Items[0].Value := 4;
      ADOQuery1.Open
    Ce code fonctionne très bien sur windows XP et delphi XE.

    J'ai bien essayé différentes connections string sans succès:
    http://www.connectionstrings.com/mysql

    Par avance merci pour votre aide...

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    Bonjour,

    Quel est le type de la colonne Id de la table ma_table ?

    D'autre part, pour une meilleure lisibilité du code, j''écrirais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      ADOQuery1.Parameters.ParamValues['Id'] := 4;
      // Alternativement, pour m'assurer du type du paramètre (suivant la réponse à la question précédente)
      ADOQuery1.Parameters.ParamByName('Id').DataType := ftInteger; // ou une des valeurs TFieldType adéquate...
      ADOQuery1.Parameters.ParamByName('Id').Value := 4;

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Bonsoir,

    En plus des recommandations de Ph.
    Pour les tables avec comportant des caractères spéciaux ou espace toujours les mettre entre crochet...

    Je ferais plutot ainsi :

    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
    With ADOQuery1 do
    begin
      SQL.Clear;
      SQL.Add('Select * From [ma_table] ');
      SQL.Add('Where id= :id ');
      Parameters.ParamByName('Id').DataType := ftInteger; // ou une des valeurs TFieldType adéquate...
      Parameters.ParamByName('Id').Value := 4;
      Try
        open;
        // ton traitement, ta récupération, tes boucles etc..
      Finally
        // éventuellement
        Close;
      end;
    end;

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2003
    Messages : 7
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    Bonsoir,

    En plus des recommandations de Ph.
    Pour les tables avec comportant des caractères spéciaux ou espace toujours les mettre entre crochet...

    Je ferais plutot ainsi :

    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
    With ADOQuery1 do
    begin
      SQL.Clear;
      SQL.Add('Select * From [ma_table] ');
      SQL.Add('Where id= :id ');
      Parameters.ParamByName('Id').DataType := ftInteger; // ou une des valeurs TFieldType adéquate...
      Parameters.ParamByName('Id').Value := 4;
      Try
        open;
        // ton traitement, ta récupération, tes boucles etc..
      Finally
        // éventuellement
        Close;
      end;
    end;
    Bonjour,

    Merci pour vos recommandations et vos réponses rapides, mais l'exception est toujours générée pendant l'initialisation du paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.Add('Where id= :id ');
    Voir pile d'appel en pièce jointe.
    Images attachées Images attachées  

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    Peut-il y avoir influence de la différence de casse 'id' et 'Id' entre le SQL et le ParamByName ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2003
    Messages : 7
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Peut-il y avoir influence de la différence de casse 'id' et 'Id' entre le SQL et le ParamByName ?
    J'ai testé d'autres exemples en respectant scrupuleusement la casse avec le même message d'erreur.

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    Par défaut
    Quel est le type de ID dans ta table ? Integer ? String ? autre ?
    Modérateur Delphi

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

  8. #8
    Membre averti
    Profil pro
    Delphi 10.4
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Delphi 10.4

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Par défaut
    Bonjour,

    peut-être cela n'a absolument rien à voir, mais pour ma part j'ai eu des problème avec le connecteur ODBC 5.1.9 Win64 ! en utilisant Delphi + ADO + ODBC alors que tout fonctionnait sous Win 7 32.

    je suis repassé à la version 5.1.8 Win64 du driver ODBC et tout fonctionne ! ...

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

Discussions similaires

  1. [WS 2003] Pack de langue pour Win 2003 64 Bits Version anglaise
    Par sessime dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 18/11/2009, 09h18
  2. base mysql vers active directory(win serv 2008)
    Par stefdu59 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 05/05/2009, 09h03
  3. Win XP 64 bits : c'est quoi ?
    Par Chatbour dans le forum Windows XP
    Réponses: 7
    Dernier message: 27/07/2007, 20h07
  4. [MySQL 5.0 + C++ WIN 32] Où est libmysqld?
    Par Jean_Benoit dans le forum Installation
    Réponses: 5
    Dernier message: 12/09/2006, 21h43
  5. [Delphi 6][MySql 4.1.11][Win XP] - Connection vers DB MySQL
    Par florran dans le forum Bases de données
    Réponses: 15
    Dernier message: 16/06/2005, 14h30

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