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 :

Ouverture d'une base Acces avec Builder 6 pro


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 59
    Points : 52
    Points
    52
    Par défaut Ouverture d'une base Acces avec Builder 6 pro
    Bonjour,

    Je me suis créé un SGBD pour ouvrir une base Acces, avec les outils ADO.
    Ma technique doit etre bidouille, ADO est il le mieux pour Acces ?

    Je suis donc a la recherche de tutoriel, divers info pour ca. Je suis pret à tout refaire.

    Votre avis m'intéresse.

    Merci d'avance

  2. #2
    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
    Perso, j'utilise ADO avec Access 2003 et ça marche très bien...

    Voici qq info en vracs:

    - La connection string pour ouvrir une db Access: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\path\\database.mdb;Jet OLEDB:System Database=c:\\path\\system.mdw;" Où la partie"System..." est optionnelle (seulement si tu utilises un fichier system)
    - Pour les query, j'ai fait une petite classe qui crée un objet et le détruit au moment où la variable quitte le scope
    - Un tutoriel (en anglais): http://www.codeproject.com/database/simpleado.asp

    Si tu veux plus d'info, je reste à ta disposition...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 59
    Points : 52
    Points
    52
    Par défaut
    Merci pour ta reponse.

    J'ai un souci pour raffraichir ma grille.
    Je bidouille en fermant la table.
    As tu une autre solution ?

    Merci d'avance

  4. #4
    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
    Quelle sorte de grille utilises-tu? Une TDBGrid?

    Si c'est le cas, alors tu dois avoir un enchaînement d'objects:

    TADOConnection --> TADOTable ou TADOQuery --> TDataSource --> TDBGrid

    Pour mettre à jour la grile, tu dois mettre à jour la table ou la query:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ADOTable1->Requery(TExecuteOptions());
     
    ou
     
    ADOQuery1->Requery(TExecuteOptions());

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 59
    Points : 52
    Points
    52
    Par défaut
    sais tu comment ne pas perdre l'index de ligne ? (mise a par le save puis le reinjecter)

  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
    Il faut utiliser les bookmarks de ton ADODataSet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      AnsiString mark=ADODataSet1->Bookmark;
      ADODataSet1->Requery(TExecuteOptions());
      ADODataSet1->Bookmark=mark;

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 59
    Points : 52
    Points
    52
    Par défaut
    Petit question : qu'as tu definie dans TExecuteOptions ?

    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
    TExecuteOptions est un type qui permet de choisir le mode de réactualisation (synchrone, asynchrone, etc.). Par défaut, il faut envoyer une instence vide ("TExecuteOptions()") mais tu peux ajouter des options avec l'opérateur "<<" (par exemple: "TExecuteOptions()<<eoAsyncExecute") car c'est une classe de type "Set"

    Regarde l'aide pour TExecuteOptions. Perso, je ne connais pas assez les subtilités des bases de données pour t'expliquer le sens de chacune de ces options.

    Le code de mon précédent post sert à récupérer un id sur l'enregistrement en cours (mark=...->Bookmark) et ensuite de reprendre cet enregistrement pour retrouver la même position après la mise à jour (Bookmark=mark). Par contre, je ne sais pas quel sera le résultat si, par exemple, l'enregistrement qui était actif est effacé entre les deux opérations...

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

Discussions similaires

  1. [ODBC] Accès à une base Access avec PHP
    Par FracMaster dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 09/02/2015, 07h05
  2. Réponses: 2
    Dernier message: 23/05/2007, 08h47
  3. ouverture d'une BD acces avec un mot de passe en vb6
    Par barbarian dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/02/2007, 12h18
  4. Ouverture d'une base avec SHIFT !!! Problème
    Par snoopy69 dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2005, 15h40
  5. [MFC]Ouverture d'une base de donnee avec DAO
    Par Wyatt dans le forum MFC
    Réponses: 7
    Dernier message: 24/01/2005, 10h06

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