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 de TDBGrid avec TMyQuery (MyDac)


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Problème de TDBGrid avec TMyQuery (MyDac)
    Bonjour,

    Ayant cherché pas mal de temps une solution à mon problème, je finis par me tourner vers vous.

    Lors d'un : MyQuery1.SQL.Add('SELECT * FROM utilisateurs');

    Mon DBGrid (Embarcadero Delphi 2010) récupérant les données reçues de MySQL (je précise que j'utilise la version 5.1.36 de MySQL avec wamp) m'affiche des "(Memo)" à la place des données reçues, le nom des champs apparait bien mais pas le reste, un exemple en image :



    J'ai suivi plusieurs documentations comme :

    http://olivierpons.com/2008/11/13/de...der-et-ttable/

    ou encore :

    http://hi.bccn.net/space.php?uid=240...=blog&id=13282

    Je n'ai jamais trouvé la bonne intéraction entre les composants MyDAC.

    Cordialement,

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Ce n'est pas spécifique à MyDAC, tout les DataSet avec un TDBGrid standard fera cela !

    Tu utilise de VarChar à plus de 255 caractères ou tout est en TEXT\BLOB ?
    VarChar à plus de 255 c'est assez nouveau avec MySQL 5, etant en MySQL 4 sous Delphi, je n'ai jamais observé le comportement de ce type !

    J'utilise une grille spécifique au bureau basé sur la CRGrid (CoreLab Grid, je ne sais pas si Devart la propose toujours)

    Mais tu peux le faire via le OnGetText et faire manuellement un AsString

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSet.FieldByName('Nom').OnGetText := TDBUtils.GetTextBlobAsString;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class function TDBUtils.GetTextBlobAsString(Sender: TField; var Text: string; DisplayText: Boolean);
    begin
      if DisplayText then
        Text := Copy(Sender.AsString, 1, 1024);
      // A Vérifier je crois que Text contient ce qu'il faut en mode Edit
    end;
    EDIT : Je n'avais pas ouvert tes liens, normalement, c'est la procédure à suivre, MyDAC est bien standard Delphi sauf si tu crées tes Query à la volée sans passer par l'IDE, ce que je fais aussi, donc il faut manuellement affecté les events !
    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Okay je vois un peu le principe, je suis en text dans ma base de données, après cela me parait bizarre qu'une fonction pour convertir les données reçues en text/varchar/int/date ou autres... n'existe pas.

    Edit : Pour la TCRGrid, je me suis renseigné, elle est includée dans la nouvelle version de MyDAC, il suffit de se rendre dans Data Controls et sélectionner le composant "TCRDBGrid", elle marche plutôt bien d'ailleurs.

    Pour de ce qui est de ce topic, je mets résolu, merci beaucoup Shai.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 459
    Points : 24 873
    Points
    24 873
    Par défaut
    c'est surtout qu'il ne faut pas utilise TEXT (65535 caractères) mais un VARCHAR(50) c'est bien suffisant !
    Integer, Float, VarChar, ... c'est parfaitement géré !

    les type BLOB (TEXT en fait parti en MySQL) ont une gestion particulière car ils sont destinés à stockés d'importante quantité de données d'où l'intelligence de la DBGrid de ne pas afficher de données inutilement grande !
    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

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

Discussions similaires

  1. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  4. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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