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 :

Resultat vide sur un select MySQL.


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut Resultat vide sur un select MySQL.
    J'ai une application en Delphi 6 et une base MySQL locale que je voudrais attaquer via ADO.
    J'ai téléchargé le Driver ODBC 3.51 pour MySQL.
    La connexion se fait bien.
    Si je fais un Insert dans une de mes tables pas de problèmes non plus
    Par contre un Select * From UneTable retourne un résultat vide.

    Les recherches que j'ai faites sur le forum ne mentionnaient pas ce souci. En revanche beaucoup ont trait à DBExpres et j'ai vraiment besoin de rester en ADO.

  2. #2
    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 sais tu que le resultat est vide ?
    Il n'y a rien qui s'affiche dans ta grid ? -> As tu vérifié que le datasource etait bien connecté ?
    Peux tu montrer le code d'appel ?

    J'utilise très souvent ADO et MyODBC 3.51, le seul problème que je connaisse c'est qu'il y a un problème avec les champs de type heure qui bug chez moi (ca me retourne tous le temps 00:00).
    Modérateur Delphi

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

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Je ne vais pas jusqu'à une grille. Je teste simplement le EOF du Query retourné et il est à TRUE.

    Pour le code je le posterai en début d'après-midi

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Voilà le code que j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
       // définition des objets
       l_ADOConnection := TADOConnection.Create(Nil);
       l_RS            := TADOQuery.Create(Nil);
     
       // connection
    l_ADOConnection.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Data Source=xxxx';
       l_ADOConnection.Open;
    l_ADOConnection.execute('insert into ecritures (ECR_ID, ECR_Code) values (18, ''test'')');
       l_RS.Connection := l_ADOConnection;
       l_RS.SQL.Clear;
       l_RS.SQL.Add('select * from ecritures');
       l_RS.Prepared := True;
       l_RS.Active := True;
    A ce niveau une ligne avec l'ID 18 a bien été insérée dans la table ecritures mais la propriété EOF du TQuery est à TRUE.
    Vraiment si vous pouvez m'aider cela me rendrait un grand service.

  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
    pour ma part j'ai aucun problème, voir exemple ci-dessous (A modifier selon les besoins)

    La table de test

    Id : auto incrément
    Champ1 : VarChar(50)
    Fichiers attachés Fichiers attachés
    Modérateur Delphi

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

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Je viens de regarder le code.
    A part le fat d'ouvrir en mettant Active := True plutôt que Open je ne vois pas grosse différence.
    Je vais retélécharger le driver.

    En tous cas merci beaucoup

  7. #7
    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
    Sinon la base de données que tu veux utiliser c'est quelle version ?
    MySQL 3, 4 ou 5 ? Car j'ai vu qu'il y avait un drivers ODBC spécifique pour MySQL 5
    Modérateur Delphi

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

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    J'ai compris ce qui m'arrivait :
    Select * from ne fonctionne pas.
    Par contre en précisant le nom des champs j'obtiens bien le résultat.
    Je vais donc pouvoir avancer dans mon projet.
    Ce que je ne m'explique pas c'est pourquoi votre exemple marche chez vous.
    J'utilise la version 4 de MySQL, celle livrée avec EasyPHP.

    Je ne marque pas le sujet résolu, cela peut amener d'autres idées mais je vous remercie encore.

  9. #9
    Membre actif Avatar de hugobob
    Profil pro
    FOI
    Inscrit en
    Septembre 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : Gabon

    Informations professionnelles :
    Activité : FOI

    Informations forums :
    Inscription : Septembre 2005
    Messages : 169
    Points : 203
    Points
    203
    Par défaut
    Je conseille de beaucoup plus utilisé ADODataSet comme les tables, pour les requetes et ADOCommand pour l'insertion, suppression , modification !

  10. #10
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Moi je pense que tu n'as pas à retélécharger le driver...
    Je pense aussi que tu ne dois pas te fier systématiquement à la valeur de EOF. Je pense avoir déjà eu un bug avec cà dans une application que j'avais faite, il a fallu installer la dernière version du MDAC pour corriger le problème.

    Il y'a un bug assez connu avec le EOF qui a arrivait avant; le fameux Either BOF or EOF is True, or the current record has been deleted.

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/10/2010, 16h26
  2. faire une condition IF sur le resultat d"une requête select
    Par realwail dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 21/10/2010, 09h35
  3. Réponses: 3
    Dernier message: 05/08/2010, 12h15
  4. [MySQL] Erreur sur mon Select MySQL
    Par The Molo dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 01/08/2008, 16h25
  5. dbExpress & MySQL 5 : renvoi de 00:00:00 sur 1 select
    Par qi130 dans le forum Bases de données
    Réponses: 0
    Dernier message: 22/08/2007, 11h06

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