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 :

sauvegarde et restauration de la BDD access


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut sauvegarde et restauration de la BDD access
    Bonjour
    comment je peut faire une sauvegarde et une restauration d'une base de donnees access a partir c++ builder.
    merci d'avance pour votre aide

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    faire une copie du fichier mdb ça ne suffirai pas ?

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    je veut a partir du logiciel le faite de cliqué sur un boutton ma BDD sera sauvegarder dans un repertoire et un autre boutton pour restaurer ma BDD depuis un repertoire.
    merci d'avance

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    dans la FAQ BCB, tu as tout un chapitre sur la gestion des fichiers et des répertoires, sachant qu'une base de données Access est un simple fichier .mdb, il te suffit copier ce fichier dans ton répertoire de sauvegarde ou de le remettre en place si tu veut le restaurer.

    Bon courage

  5. #5
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    tu peux également utiliser la bibliotèque JRO de MS pour la création de replicat de base de donnée

    de plus ample informations sont disponibles ici
    http://msdn.microsoft.com/library/techart/dbrepjet.htm
    et ici pour des exemples en VB
    http://msdn.microsoft.com/library/ps...o/jrex28mr.htm

    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    merci pottier pour le lien.
    les deux liens pour utiliser la bibliotheque JRO de MS sont Inaccessible

  7. #7
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    merci pottier pour le lien.
    les deux liens pour utiliser la bibliotheque JRO de MS sont Inaccessible
    Uniquement pour Info ce n'est pas Pottiez mais DJMSoftware

    un autre lien valide ici
    http://www.microsoft.com/downloads/d...displaylang=fr
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    Bonjour
    j'ai trouver dans le forum le code qui ma permet de copié ma base de donnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SHFILEOPSTRUCT FileOpStr;
    ZeroMemory(&FileOpStr, sizeof(FileOpStr));
    FileOpStr.hwnd = Application->Handle;
    FileOpStr.wFunc = FO_COPY;
    FileOpStr.pFrom = "C:\\ofEPF2009\\Dossier\\Produits.mdb\0";
    FileOpStr.pTo = "F:\\\0";
    SHFileOperation(&FileOpStr);
    j'ai voulu donner a l'utilisateur le droit de changer le repertoire de sauvgarde pour cela j'ai utliser un edit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SHFILEOPSTRUCT FileOpStr;
    ZeroMemory(&FileOpStr, sizeof(FileOpStr));
    FileOpStr.hwnd = Application->Handle;
    FileOpStr.wFunc = FO_COPY;
    FileOpStr.pFrom = "C:\\ofEPF2009\\Dossier\\Produits.mdb\0";
    FileOpStr.pTo = Form2->Edit1->Text;
    SHFileOperation(&FileOpStr);
    j'ai une erreur au niveau de la ligne rouge (impossible de convertir AnsiString en const char)
    comment je peut regler ce probleme?
    merci d'avance

  9. #9
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    il faut que tu utilise un char* :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    char* buffer = new char[Form2->Edit1->Text.Length()+1];
    *buffer = *(Form2->Edit1->Text.c_str());
    SHFILEOPSTRUCT FileOpStr;
    ZeroMemory(&FileOpStr, sizeof(FileOpStr));
    FileOpStr.hwnd = Application->Handle;
    FileOpStr.wFunc = FO_COPY;
    FileOpStr.pFrom = "C:\\ofEPF2009\\Dossier\\Produits.mdb\0";
    FileOpStr.pTo = buffer;
    SHFileOperation(&FileOpStr);

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    salut
    merci pottier pour votre aide, il ya un probleme dans ce code, il copie le fichier Produits.mdb avec une autre extension sur un autre nom (il ne s'ouvre meme pas)
    merci d'avance

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut faniette
    Je ne sais plus a partir de quelle version mais restaure a ete abandonne pour les bases Access, cette restauration se fait par compactage, voir la FAQ

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    salut

    j'ai toujour le probleme pour sauvegarder la BDD pour cela j'ai utilisé une aurtre procedure
    j'ai creer trois boutton

    1)pour definir le chemin ou se trouve la BDD j'ai utilisée ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (OpenDialog1->Execute())
         {
       Edit1->Text = OpenDialog1->FileName;
          }
    2)pour definir le chemin ou je sauvegarde la BDD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AnsiString  PathSRC;
    SelectDirectory("Choisir le repertoire source.","C:",PathSRC);
    Edit2->Text = PathSRC;
    3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     AnsiString P1,p2;
     p1=Edit1->Text;
     p2=Edit2->Text;
    CopyFile(p1.c_str(), p2.c_str(),true)
    avec ce code j'ai pas d'erreur mais la BDD ne se copi pas.

    merci d'avance

  13. #13
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    Bonjour,
    vraiment je souffre a cause de ce problème de sauvegarder et restaurer de la BDD. qui ma étonné c'est que le code des fois il fonctionne parfaitement mais des fois il s'affiche Erreur lors de la copie du fichier ou du dossier"Impossible de copier Fichier:Impossible de lire à partir du fichier ou de la disquette source".
    pour sauvegarder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Screen->Cursor = crHourGlass; //affiche le curseur par defaut
    SHFILEOPSTRUCT FileOpStr;
    ZeroMemory(&FileOpStr, sizeof(FileOpStr));
    FileOpStr.hwnd = Application->Handle;
    FileOpStr.wFunc = FO_COPY;
    AnsiString chaine1=Form16->Edit2->Text ;
    FileOpStr.pFrom =chaine1.c_str();
    AnsiString chaine2=Sauvegarder->Edit2->Text;
    FileOpStr.pTo =chaine2.c_str() ;
    SHFileOperation(&FileOpStr);
    Screen->Cursor = crDefault; //affiche le curseur par defaut
    pour Restaurer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Screen->Cursor = crHourGlass; //affiche le curseur par defaut
    SHFILEOPSTRUCT FileOpStr;
    ZeroMemory(&FileOpStr, sizeof(FileOpStr));
    FileOpStr.hwnd = Application->Handle;
    FileOpStr.wFunc = FO_COPY;
     
    AnsiString chaine1=Restaurer->Edit1->Text ;
    FileOpStr.pFrom =chaine1.c_str();
     
    AnsiString chaine2= "C:\\SSC\\Dossiers" ;
    FileOpStr.pTo = chaine2.c_str();
    SHFileOperation(&FileOpStr);
    Screen->Cursor = crDefault; // affiche le curseur par defaut

    je serai reconnaissante a qui peut m'aider a retrouver la cause du probleme

Discussions similaires

  1. [XL-2013] Sauvegarde de données Excel vers BDD Access
    Par BATtheBARGE dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 21/10/2014, 09h09
  2. [SQL] Sauvegarde et restauration d'une partie de BDD en XML
    Par Ministar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/10/2007, 13h38
  3. [BDD Access] Sauvegarde et restauration
    Par kardevlop dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/02/2007, 12h17
  4. Créer un fichier de sauvegarde d'une BDD access
    Par theking dans le forum Access
    Réponses: 4
    Dernier message: 05/07/2006, 14h04
  5. Réponses: 6
    Dernier message: 29/05/2006, 23h45

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