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

MFC Discussion :

[MFC] création fichier mdb


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut [MFC] création fichier mdb
    Bonjour,

    Comment peux-t-on créer un fichier de base de données access mdb ?
    J'utilise les systèmes de gestion de base de données ADO.

    Merci.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    il me semble que l'on ne peut pas créer un fichier access directement.
    a confirmer.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par farscape
    il me semble que l'on ne peut pas créer un fichier access directement.
    a confirmer.
    On ne peux pas créer un fichier access à l'intérieur d'une application MFC ??

  4. #4
    Membre éprouvé Avatar de GP77
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    Mais si qu'on sait créer un fichier access en MFC, notre programme le fait (faut que je vérifie le code) mais on utilise pas l'ADO...

  5. #5
    Membre éprouvé Avatar de GP77
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    Bon, quand on parle trop vite, on dit des betises...

    Notre programme, crée de db access sur base d'autres dbs modèles, ce qui revient à une simple copie/modif du contenu...

    Mais ca doit etre possible...

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par GP77
    Mais si qu'on sait créer un fichier access en MFC, notre programme le fait (faut que je vérifie le code) mais on utilise pas l'ADO...
    Ah... et si tu me donnes juste le code de la création du fichier access et que je le copie dans mon programme, après je peux continuer à manipuler ce fichier avec ADO ?

  7. #7
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    et bien sinon, je ne sais pas si dans ton cas, ca serait ce qu'il te faudrait, mais tu peux créer une base ACCESS (juste la structure des tables et jointures) et ensuite, faire un copier coller dans ton prog avec un nouveau nom et travailler sur cette base pour la remplir par exemple

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par lenouvo
    et bien sinon, je ne sais pas si dans ton cas, ca serait ce qu'il te faudrait, mais tu peux créer une base ACCESS (juste la structure des tables et jointures) et ensuite, faire un copier coller dans ton prog avec un nouveau nom et travailler sur cette base pour la remplir par exemple
    +1 , j'avais utilisé oledb pour attaquer access et la creation d'un fichier ne fonctionnait pas, j'ai donc utilisé une base pré crée au depart...
    de toute façon le probleme n'a rien à voir avec les MFC .

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par lenouvo
    et bien sinon, je ne sais pas si dans ton cas, ca serait ce qu'il te faudrait, mais tu peux créer une base ACCESS (juste la structure des tables et jointures) et ensuite, faire un copier coller dans ton prog avec un nouveau nom et travailler sur cette base pour la remplir par exemple
    Bof, c'est pas vraiment ce que je voudrais : je m'explique.
    Pour faire simple, mon application MFC possèderait un menu
    Fichier => créer une base (on choisit un nom pour la base toto1.mdb)
    et donc ça crée une base
    et après on peut refaire fichier => créer une base
    et ça recrée une autre base avec un autre nom toto2.mdb
    et ainsi de suite.

  10. #10
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    je vois pas ou est le problème

    Fichier => créer une base (on choisit un nom pour la base) :
    avec CopyFile tu copie ton modèle de base et tu choisis le nouveau nom ( chemin compris ou non), par ex toto1.mdb
    comme ça, tu aura bien toujours ton modèle et ta nouvelle base avec le nom choisi.
    et c'est complètement transparent pour l'utilisateur

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Oui, exact, j'ai essayé avec CopyFile() et ta méthode marche mais j'ai un nouveau problème :
    en fait, j'ouvre un fichier (Fichier=> ouvrir) et ensuite une base est créée : je copie donc la base (que j'ai créée précédemment) comme tu me l'as suggéré.
    Le problème c'est que j'aimerais que le programme copie une base "modele.mdb" qui se trouve dans le répertoire de mon application et quand je fais CopyFile("modele.mdb","toto1.mdb", FALSE); Il essaye de trouve le fichier modele.mdb dans le répertoire ou j'ai ouvert mon fichier et pas dans le répertoire de l'application.

    Y a-t-il un moyen de récupérer le répertoire de l'application ?
    par exemple si mon application est dans C:\monappli, je ferai
    rep=GetDirectory();
    // rep serait égal à C:\monappli\
    et après je ferai
    rep=rep+"modele.mdb"
    CopyFile(rep,"toto1.mdb", FALSE);

  12. #12
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    méthode GetModuleFileName pour avoir le path de ton application.

    http://c.developpez.com/faq/vc/?page...pp#PathExeFile

  13. #13
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Citation Envoyé par lenouvo
    méthode GetModuleFileName pour avoir le path de ton application.

    http://c.developpez.com/faq/vc/?page...pp#PathExeFile
    Merci les gars, ça marche nickel : pour l'instant j'ai testé en copiant des fichiers texte mais ça devrait marcher avec des fichiers access ... Je considère donc mon problème comme résolu.

    Par contre, j'ai trouvé une méthode, à mon goût, plus élégante que GetModuleFileName pour retrouver le chemin de l'application : __FILE__ est une chaîne de caractère contenant directement le chemin de l'application. Pour le vérifier, il suffit d'exécuter la commande AfxMessageBox(__FILE__); qui affiche le chemin complet (reste juste à enlever le nom de fichier à la fin).

  14. #14
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    attention par contre à ta méthode si tu dois faire une install pour un déploiement , le chemin de l'application peut alors changé, et ta méthode ne fonctionnera plus alors qu'avec GetModuleFileName si.

  15. #15
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    Oui, exact tu as raison, je vais donc rester sur
    GetModuleFileName(NULL,chemin,32);
    Par contre, chemin ne peut apparemment pas être de type CString et quand j'exécute le prog, tout se passe bien, mais quand je ferme la fenêtre d'exécution j'ai une erreur d'adressage mémoire. Est-ce que mes déclarations sont bonnes ?

    CString Cchemin;
    char* chemin;
    GetModuleFileName(NULL,chemin,32);
    Cchemin=chemin;
    Cchemin=Cchemin.Mid(0,Cchemin.ReverseFind('\\'));
    AfxMessageBox(Cchemin);

  16. #16
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    je suis bête, je viens de me rendre compte de mon erreur :
    c'est pas
    char* chemin;
    mais
    char chemin[32];

  17. #17
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    oui et aussi prévois peut-être un peu plus long que 32 en taille de chemin, du genre 256 pour éviter tout problème

  18. #18
    Membre chevronné
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par défaut
    En utilisant le catalog ADO il est possible de créeer une base Access Vide et ensuite au besoin d'y ajouter des tables par programmation, sans copier de fichier mdb depuis une source, ou une ressource...

    C'est avec la dll "msadox.dll".
    Il y as un bon exemple sur codeguru :

    http://www.codeguru.com/cpp/data/mfc...cle.php/c4315/

  19. #19
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Par défaut
    lorsque j'inclue la ligne suivante dans stdAfx.h
    #import "C:\Program Files\Fichiers communs\System\ado\msadox.dll"
    j'ai l'erreur suivante :
    windows.h already included (au niveau du fichier afxv_w32.h)

  20. #20
    Membre chevronné
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par défaut
    Moi je l'ajoute pas dans stdafx.h mais dans le .h de ma classe qui fait les requêtes ADO.

    Essaye de la mettre ailleurs.

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

Discussions similaires

  1. Création Fichier mdb en C#
    Par Novac dans le forum C#
    Réponses: 18
    Dernier message: 26/05/2013, 12h19
  2. Création d'un fichier MDB
    Par SmithC dans le forum JDBC
    Réponses: 2
    Dernier message: 04/07/2012, 12h02
  3. création fichier mdb, pourquoi ?
    Par sergoid dans le forum Access
    Réponses: 15
    Dernier message: 25/08/2006, 14h42
  4. Réponses: 16
    Dernier message: 04/01/2006, 14h54
  5. [MFC] commentaire fichier ini
    Par Gothico dans le forum MFC
    Réponses: 7
    Dernier message: 22/12/2003, 14h23

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