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

C++Builder Discussion :

[BDE ACCESS] Graph


Sujet :

C++Builder

  1. #1
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut [BDE ACCESS] Graph
    Bonjours à tous,
    je débute en Base de donnée, j'ai decidé de me mettre à Access (.mdb) avec le tuto de ricky81.
    je m'en sort pas trop mal, en revanche je n'arrive pas à ajouter un "Champ" dans ma table de la mdb en code, seulement avec le soft Access directement.

    Paramètre de ma table:
    - champ : jj/mm/aa (date).
    - ligne : valeur numérique.

    je voudrais que l'utilisateur puisse entrer la date avec la valeur numérique.

    Car avec le Composant DBchart je voudrais afficher la "date" avec la valeur "numérique".

    si quelqu"un a une meilleur idée je suis preneur, et si quelqu'un sait comment ajouter un champ dans ma database.

    merci

    ++

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Hum tout ça n'est pas très clair et je pense que c'est du à ton vocabulaire.
    Ce que tu appeles paramètres de ta table sont en fait les champs. Et à priori ce que tu appelles champs sont en fait des enregistrement ou des tuples.

    Normallement tu peux faire toutes les opérations de sélection que tu souhaites via un TQuery en utilisant le langage SQL. Pour les opérations de modification, telle que l'insertion de tuple, tu peux aussi utiliser le langage SQL mais via le composant TExecQuery (je ne suis pas sûr du nom).

    J'espère t'avoir aidé, sinon n'hésite pas à le dire.

  3. #3
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    ce que j'appels "Champs" sont les colonnes de ma Table (Fields).

    j'utilise ce code pour crée et remplir une ligne de ma colonne "Nom":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Form1->Table1->Append();  //Ajoute un enregistrement vide et se positionne dessus
    Form1->Table1->Edit(); // Positionne la table en mode Edition
    Form1->Table1->FieldByName("Nom")->Value = nom; //Place le nom dans le TEdit dans la table
    Form1->Table1->Post();  // Valide l'édition dans la base de données
    La ou je bloque c'est que je voudrais crée une autre colonne.

    Pour le TQuery je l'ai vu dans le Tuto mais je ne connais pas le SQL.Il doit y avoir moyen de piloter un BDE access correctement sans le SQL.

    merci de ta réponse.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,
    j'ai vu que tu voulais une solution sans le SQL mais bon c'est pas compliqué, donc tu peux toujours aller regarder :
    http://sql.developpez.com/sqlaz/ddl/?page=partie2#L7.6
    a+

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Je pense aussi que vouloir manipuler des bases de donnée sans le SQL c'est du suicide. Surtout que le SQL est plutôt simple (au moins la base).

  6. #6
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    ok je vais voir ce que donne un peu le SQL si ca me permet de realiser ce que je veux sans trop compliquer la chose.

    une autre petite question.
    Pour dialoguer avec mon fichier .mdb il faut faire un lien avec le BDE administrator.
    -Comment je peux faire pour que cette config soit automatique, lors de l'install du soft par exemple ?

    merci
    ++

  7. #7
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par défaut
    Citation Envoyé par Neilos
    Surtout que le SQL est plutôt simple (au moins la base).
    Encore heureux, pour le Simple Query Language

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Ca m'apprendra à pas suivre en amphi de base de donnée

  9. #9
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    Super j'ai créer une colonne !!
    en appliquant ce code dans le TQuery:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE Data
    ADD 26/08/2005 VARCHAR(25)
    par contre 2 problemes apparaissent...

    -je n'arrive pas à rafraichir ma modification dans mon DBGrid. obliger de faire ca pour que ca marche (qui n'est pas très homologué):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       Session1->Close();
       Database1->Close();
       Table1->Close();
       Table2->Close();
     
       Session1->Open();
       Database1->Open();
       Table1->Open();
       Table2->Open();
    -Ensuite comment est que je peux faire appels à une AnsiString extern dans le SQL; je m'explique que la chaine "26/08/2005" vienne de mon prog C++ ? (pour que l'utilisateur la rentre dans un Tedit par exemple).

    merci à tous !!!
    (meme si je trouve domage de passer par un autre language pour gerer des Tables dans un BD ).


    ++

  10. #10
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Par défaut
    Euh ... Excusez-moi j'ai loupé le début

    Quand tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER TABLE Data
    ADD 26/08/2005 VARCHAR(25)
    tu ajoutes bien un champs (colonne) à la table Data de type VARCHAR(25) et qui s'appelle 26/08/2005 ?

    C'est pas plutôt un enregistrement que tu voudrais ajouter ?

    Si c'est le cas, le code SQL serait plutôt du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO Data (DATE) VALUES ('26/08/2005')
    (valable pour sql server, pour les autres BDD ça peut varier )

    Sinon si je reprend du début, je pense que tu n'était pas loin de la solution (si j'ai bien tout compris parce qu'effectivement on à des problèmes de vocabulaire)
    Si au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Form1->Table1->Append();  //Ajoute un enregistrement vide et se positionne dessus
    Form1->Table1->Edit(); // Positionne la table en mode Edition
    Form1->Table1->FieldByName("Nom")->Value = nom; //Place le nom dans le TEdit dans la table
    Form1->Table1->Post();  // Valide l'édition dans la base de données
    tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Form1->Table1->Append();  //Ajoute un enregistrement vide et se positionne dessus
    Form1->Table1->Edit(); // Positionne la table en mode Edition
    Form1->Table1->FieldByName("Nom")->Value = nom; //Place le nom dans 
    le TEdit dans la table
    Form1->Table1->FieldByName("Date")->Value = "26/08/2005"; 
    Form1->Table1->Post();  // Valide l'édition dans la base de données
    alors tu écrit bien dans leux deux champs de ton nouvel enregistrement.

    Je continue...

    Si ce que tu souhaites, c'est bien d'ajouter un nouveau champs (colonne) à ta table par programme tu peut utiliser AddFieldDef() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
      pNewDef->Name = "Field1";
      pNewDef->DataType = ftInteger;
      pNewDef->Required = true;
    Voilà, j'espère avoir été suffisament exhaustif

    (ce qu'il nous faudrait c'est un bon lexique pour tous ce qui est base de données, ça aiderait les novices à mieux s'exprimer et les autres à les comprendre )

  11. #11
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    lut sebgui,

    c'est bien une colonne que je voulais ajouter,par contre le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
      pNewDef->Name = "Field1";
      pNewDef->DataType = ftInteger;
      pNewDef->Required = true;
    je l'avais deja essayé vu qu'il est dans l'aide, mais il ne fonctionne pas apparement car si juste derriere je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       Table1->First();
       Table1->Edit(); // Positionne la table en mode Edition
       Table1->FieldByName("Field1")->Value = 12; //Place le nom dans le TEdit dans la table
       Table1->Post();  // Valide l'édition dans la base de données
    il me sort une erreur comme quoi la colonne "Field1" n'existe pas!!
    et c'est vrai car il n'apparait pas dans mon DBGrid lorsque je fais l'ajout du champ seulment sans mettre de valeur.

    merci qd meme ++

  12. #12
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Par défaut
    IL y a probablement quelquechose qui ne doit pas aller dans ton code car j'ai déjà fait avec succès ce genre de chose un bon nombre de fois.

    Pourrait-tu essayer de nous mettre l'ensemble du code concerné afin que l'on puisse essayer de déterminer la source de l'erreur :

    Indique aussi par quels composants tu accèdes à ta base (BDE,ADO,...)

  13. #13
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    le code il n'a rien de compliqué tt est dans les messages précedents.
    pour tt ce qui est composant j'utilise texto ceux qui se trouvent dans le tuto :

    http://ricky81.developpez.com/tutoriel/bcb/bde/

    Pour l'ajout avec la propriété "FieldDefs" je crois que c'est seulement ajouter un lien à des colonnes deja existantes dans la base de data, mais je suis pas sur.

    fin je trouve qd meme la galere juste pour stoker une valeur num et une date dans un tableau, lutter avec 50 composants, plusieurs languages .

  14. #14
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Par défaut
    Effectivement ce tuto présente l'accès à Access via le BDE.

    Maintenant, je trouve le BDE peu démodé (et plus supporté par Borland).

    Perso, j'utilise les composant ADO qu ipour ça sont netttement plus simple.

    Il suffit d'un comosant TADOConnection pour l'accès à la base et un composant TADOTable pour ouvrir une table.

    Le reste des méthodes est semblable au BDE.

    En plus ça facilite la redistribution de l'applicaton.

  15. #15
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    C'est possible, mai j'ai un peu regarder il n'y a pas des masses de tuto avec ADO et C++ builder. comme je debute sur les bases de données, il me faut un bon tuto.
    c'est vrai que pour la redistribution j'ai pas trop fais gaffe mais pour installer et configurer le BDE sur un autre post ca va me poser Probleme aussi je le craint...

    enfin je verrai bien.
    Merci encore à tous

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

Discussions similaires

  1. questions BDE Access
    Par blondelle dans le forum C++Builder
    Réponses: 14
    Dernier message: 17/11/2006, 20h13
  2. Problème avec InstallShield Express : BDE ? Access ?
    Par SLicTa dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/01/2006, 16h01
  3. Table d'une Bde Access vers fichier .txt
    Par cefabien dans le forum Access
    Réponses: 2
    Dernier message: 08/12/2005, 11h31
  4. [BDE][Access] utilisation de BDDs sans passer par ODBC
    Par Guigui_ dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/01/2005, 14h11
  5. BDE et Access 2003
    Par pascal2vichy dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/07/2004, 13h40

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