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 :

Base de donnée Access depuis C++ Builder


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut Base de donnée Access depuis C++ Builder
    hello tout le monde je débute avec les bases de données et je sais que l'on peut questionner une db access avec un programme borland...

    je suis en train de tester avec l'objet TSQLQuery mais je ne sais pas bien comment m'en servir, ou et comment indiquer le chemin vers la db...

    si quelqu'un pouvait prendre un peu de temps pour m'expliquer ce serait cool.

    merci

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Tu peux aussi utiliser les connexions ADO:

    1) Créer un object TADOConnection dans ta fiche
    2) Avec un double-clic sur le composant, tu peux définir la connection string. Deux méthodes: avec le builder (il faut sélectionner "Microsoft Jet 4.0" comme provider et sélectionner le fichier mdb dans connexion), sinon tu peux créer toi-même la connectionstring:

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DATABASE.MDB

    en remplaçant "DATABASE.MDB" par le nom de ta base de données (y.c. le path). Si tu as besoin d'un fichier mdw pour ouvrir la base de donnée, alors tu dois ajouter des paramètres à ta connectionstring, cf cet article:

    http://www.codeproject.com/database/...OLE%20DB%20Jet

    Après, tu peux utiliser cette connexion avec les autres composantes de la barre "dbGo" (dans BDS2006; je crois que dans Builder 6 elle s'appelle autrement) pour relier la base à des TDataSet.

    TADOConnection --> TADOQuery --> TDataSet

    (--> signifie "..fournit les informations à...")
    Amicalement

  4. #4
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    utlise l'odbc pour commencer !

    panneau de configuration - Outils d'administration - ODBC

    tu ajoutes un aliase - driver access - tu indique ou se trouve la bd

    dans builder dans l'inspecteur d'objet dans dataset tu retrouvera cette
    aliase "celui que tu as crée "

    tu ajoute le composant Table - dbgrid - dataset !

    dbgrid pointe sur le dataset qui pointe sur table , poue le faire tu dois utliser
    la propriete datasource du composant dbgrid et dataset

    tu active la table via l'inspecteur d'objet " Activer=true " et
    sans compiler tu verras le contenu de ta table sur ta form dans le dbgrid;

    mais avant choisi le nom de la table acces dans la liste tablename du
    composant table !

    @+

  5. #5
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    merci pour vos infos mais chez moi (BDS2006) je n'ai pas de composant qui s'appelle DataSet. je n'ai que :
    TDataSetTableProducer
    TDataSetPageProducer
    TDataSetProvider

    donc je ne sais pas quoi utiliser
    tu ajoute le composant Table - dbgrid - dataset !
    TADOConnection --> TADOQuery --> TDataSet

    (--> signifie "..fournit les informations à...")
    merci de m'aider encore

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Toutes mes excuses:

    TADOTable ou TADOQuery sont des TDataSet (N'oublie pas de mettre la composante comme Active=True)

    Tu dois lier un TDataSource à l'un ou l'autre de ces éléments (propriété DataSet du DataSource)

    Puis lier les composantes de données (TDBxxxx) au TDataSource (propriété DataSource du composant).

  7. #7
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    ne m'en veuillez pas mais un petiti exemple imagé avec les noms m'aiderait beaucoup
    merci

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Un exemple:

    Sur une fiche, tu crées 4 composantes:
    - TADOConnection
    - TADOTable
    - TDataSource
    - TDBGrid

    TADOConnection
    1) Avec un double-click sur le TADOConnection, tu créés la connection string vers ta base de données Access.
    2) Tu définis la propriété "LoginPrompt=false" (sinon une boîte de login apparaît à chaque connexion)

    TADOTable
    1) Aller chercher le nom du TADOConnection dans la combo pour la propriété "Connection"
    2) Propriété "TableName": sélectionne une des tables de la base de données dans le menu déroulant
    3) Mettre la propriété "Active=true" (comme ça le composant ouvre tout de suite la table, sinon tu dois le faire depuis le programme avant de pouvoir lire les données)

    TDataSource
    1) Aller chercher le nom du TADOTable dans la combo pour la propriété "DataSet"

    TDBGrid
    1) Aller chercher le nom du TADOSource dans la combo pour la propriété "DataSource"
    2) Par défaut, toutes les colonnes s'affichent. Avec un double-click sur le composant, tu peux sélectionner ou créer des colonnes

    Header (.h)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class TForm1 : public TForm
    {
    __published:	// IDE-managed Components
      TADOConnection *ADOConnection1;
      TADOTable *ADOTable1;
      TDataSource *DataSource1;
      TDBGrid *DBGrid1;
      void __fastcall DataSource1DataChange(TObject *Sender, TField *Field);
    private:	// User declarations
    public:		// User declarations
      __fastcall TForm1(TComponent* Owner);
    };
    Implémentation (.cpp)
    Rien de spécial

  9. #9
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    j'ai encore une dernière question sur le sujet lorsque j'essaye de faire une requête SQL via BCB j'ai le message suivant


    j'ai essayé de changer les liens entre les objets mais quand j'essaye de mettre le TQuery->Active à true
    le message revient

    vous savez surement d'ou ça vient alors dites le moi svp

    @++

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Ton message d'erreur semble indiquer que tu cherches à te connecter à un autre type de base que MS Access...

    Quelle est la connectionstring que tu utilises ? (elle apparaît dans la propriété "ConnectionString" du composant TADOConnection)

  11. #11
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    la voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=K:\EMVs\ICH\103\_-Projets-_\Test base de données\DBTest.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
    elle me paraît trèèèès longue... mais elle a été faite automatiquement...

  12. #12
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Effectivement, c'est un sacré morceau

    Essaye avec:

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=K:\EMVs\ICH\103\_-Projets-_\Test base de données\DBTest.mdb;

    Ca devrait marcher tout aussi bien. Dis-moi si ça marche...

  13. #13
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    il y a toujours la même erreur

  14. #14
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    je la reposte

  15. #15
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    j'ai réécris le chemin correct encore une fois en changeant l'objet et l'erreur c'est transformée



    elle me parait plus cohérente vu que maintenant le chemin vers ma BD est correcte dans le message d'erreur

  16. #16
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    est ce quelqun peut m'aider ???

  17. #17
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    j'ai refais mon projet de a jusqu'à Z et je n'ai plus l'erreur pourrais-tu me dire comment lier mon objet TADOQuery pour qu'il influence sur mon tableau

  18. #18
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Salut, si t’avais bien suivi les conseils de Patrick au 8ème post tu ne serras pas en train de parcourir ce long chemin.

    Si t’es prêt prend ton crayon et up allons y…>
    I) la théorie je te renvoie au post de Patrick 8ème .
    II) La pratique

    Sur ta fiche, tu dois déposer ces 4 composantes:
    - ADOConnection (Composant ADO)
    - ADOTable (Composant ADO)
    - DataSource (Composant DATAAccess)
    - DBGrid (Composant DataConcontrols)

    II-1) selectionnes le composant ADOConnection
    Dans l’Inspecteur d’Objet tu vas modifier les propriétés de ADOconnection de la manière suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    i) ADOConnection->ConnectingString=la chaine de connexion vers ta base de données.
    Esperons que t’as réussi cette connexion à ta BDD ; 
    ii) ADOConnection->LoginPrompt=false ;
    iii) ADOConnection->Connected=true ;
    II-2) selectionnes le composant ADOTable sur ta fiche
    Dans l’Inspecteur d’Objet,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i) ADOTable->Connection= ADOConnection1 ;
    ii) ADOTable->TableName= selectionnes une table de ta Base de données
    Sur ta fiche
    iii)un double-clic sur le composant ADOTable1 et une petite fenetre blanche s’ouvre
    iv) un clic droit sur la petite fenetre-> Add fields->tu selectionnes les champs voulus et OK.
    Tu reviens encore dans l’Inspecteur d’Objet et tu fais :
    v) ADOTable->Active= true ;

    II-3) sélectionnes le composant DataSource
    Dans l’Inspecteur d’Objet, tu fais :
    i)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSource->Dataset=ADOTable1 ;
    II-4) sélectionnes le composant DBGrid
    Dans l’Inspecteur d’Objet, tu fais :
    i)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBGrig1->DataSource= DataSource1
    Par défaut, toutes les colonnes s'affichent, bien sur que tu peux paramétrer

    III)si tout a bien fonctionné comme prévu tu devras exécuter ton programme et le DBGRID te dira tout.

    Si tu veux maintenant tout paramétrer ou utiliser ADOQuery tu peux poster de nouveau, mais cette étape est essentielle pour la suite des opérations.
    Je me suis sûrement trompé par endroit, mais ça doit aller, beaucoup de courage et lances toi.

    Soul

  19. #19
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Désolé, j'étais en déplacement pendant 2 jours sans internet.

    Bravo Soul, très bonne explication.

    Mangacker, est-ce que cela t'a aidé à résoudre ton problème ?

  20. #20
    Membre habitué Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Points : 181
    Points
    181
    Par défaut
    merci pour tes explications mais ma question n'était pas là...
    j'avais déjà réussi à afficher les différentes colones de ma DB le problème se pose lorsque j'essaye d'utiliser le composant TADOQuery car je ne sais pas faire les liaisons avec CE composant

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2010] Mise à jour base de données Access depuis Excel
    Par NewUserAccess dans le forum Access
    Réponses: 3
    Dernier message: 26/02/2015, 13h58
  2. Mise à jours base de donnée Access depuis liste Excel
    Par Stepsbysteps dans le forum Excel
    Réponses: 4
    Dernier message: 07/10/2013, 14h25
  3. [AC-2007] Base de donnée access depuis feuille excel.
    Par le_sayan dans le forum VBA Access
    Réponses: 6
    Dernier message: 13/06/2010, 10h19
  4. base de données gdb depuis Access
    Par magictom42 dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 05/01/2007, 17h16
  5. Probleme base de données Access et Builder C++
    Par Syrass dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/02/2006, 10h30

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