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 :

DBGrid : comment l'utiliser


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut DBGrid : comment l'utiliser
    Bonjour à tous,

    J'ai inséré le composant DBGrid dans mon appli.
    J'ai ajouté un composant TDataSource DataSource1 + TMyQuery MyQuery1.
    Je mets dans le Dataset de mon datasource MyQUery1.
    Dans MyQuery1, je me connecte à la base de données.

    Lorsque je lance mon application, j'ai l'impression que l'ajout des lignes s'effectue mais je n'ai pas de données (les données sont vides) - voir photo en PJ :

    Nom : image1.jpg
Affichages : 392
Taille : 35,8 Ko

    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    begin
      with MyQuery1 do
      begin
        Connection := Form_pp.MyConnection1;
        Active := False;
        SQL.Clear;
        SQL.Add('SELECT num_boite, date FROM MyTable where ref=''' + form_pp.ComboBox1.Text + ''' order by date');
        Open();
      end;
      DataSource2.DataSet := MyQuery1;
      DBGrid1.Refresh;
    end;
    Serait-il possible de m'aider svp ?

    Merci d'avance

    Marsup

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 658
    Billets dans le blog
    65
    Par défaut
    Les colonnes semblent avoir des définitions (à la vue des entêtes de colonnes) donc les noms des champs (propriété Fieldname de chaque Tcolumn) sont-ils correctement renseignés ?

  3. #3
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    C'est à dire ?

    Quand je vais sur la propriété du champ fieldName j'ai l'erreur suivante

    Nom : Image2.jpg
Affichages : 387
Taille : 78,5 Ko

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 658
    Billets dans le blog
    65
    Par défaut
    Ok. J'avais rayé la mention au DBGrid.DataSource car, à la vue de l'image écran, il y avait des lignes. Donc je pensais que la grille avait été créée avec un TQuery contenant un SQL

    Si ce n'est pas le cas alors c'est au runtime qu'il faut écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DBGrid1.Datasource:=DataSource2;
    DBGrid1.Columns[0].FieldName:='num_boite';
    DBGrid1.Columns[1].FieldName:='date';
    PS. pas joli ça la colonne nommée 'date'
    P.P.S. AMHA DBGrid1.Refresh; ne sert à rien

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    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 096
    Par défaut
    Même en Design Time on peut mettre le nom, faut juste pas utiliser la ComboBox mais copier-coller, avec MyDAC+D7 et ODAC+XE2 ça passait très bien, je n'ai jamais utilisé la connexion depuis l'IDE, c'est une hérésie ce truc, on devrait avoir une option pour couper cette merde totalement.
    Pense bien mettre Active à False à ton objet TMyConnection, c'est une vraie saloperie le mode IDE connecté à la DB, sinon ça tente au lancement du programme d'ouvrir une connexion sur les valeurs dans l'état avant que tu les changes par exemple via un fichier ini

    Généralement, j'avais le DBGrid, le DataSource posé sur le TForm mais pas de DataSet, celui-ci était alloué à la volée et lié en RunTime, ça évite cette merde de l'IDE connecté.
    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 éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Super !
    Ca marche.
    Merci à vous 2 pour votre aide précieuse

    Cdlt,

    Marsup

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

Discussions similaires

  1. [DBGRID] Comment coloriser 1 ligne sur 2 dans un DBGRID
    Par did85 dans le forum Bases de données
    Réponses: 28
    Dernier message: 26/10/2011, 15h22
  2. [Optimisation] Comment bien utiliser le StringBuffer?
    Par mathieu dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2004, 14h22
  3. Comment bien utiliser ce forum ?
    Par Alcatîz dans le forum Pascal
    Réponses: 0
    Dernier message: 21/04/2004, 16h37
  4. [scrapbook] comment l'utiliser ?
    Par Didier 69 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 16/04/2004, 17h28
  5. [INDY] -> IdIdentServer comment l'utiliser ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 9
    Dernier message: 06/08/2003, 16h00

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