Backup de BD avec Delphi et Access

CyberMax452 Messages postés 18 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2004 - 4 mai 2004 à 22:30
CyberMax452 Messages postés 18 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2004 - 7 mai 2004 à 13:30
J'aimerais faire un backup de ma base de données qui est en ACCESS à l'aide de Delphi.

En plus du backup, je voudrais pouvoir restaurer le dernier backup.

Voici mes 2 questions :

1. Est-ce possible?
2. Si oui, comment?

3 réponses

cs_Rowan Messages postés 12 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 16 septembre 2004
7 mai 2004 à 10:42
Bonjour CyberMax452,

Je pense que le mieux est de faire une copie de tes fichiers base de données.
Si tu connais le ou les nomsq de ton ou tes fichiers, tu peux utiliser cette méthode de copie de fichiers qui du reste fonctionne pour n'importe quel type de fichiers.

// Copie de sauvegarde des fichiers
// Si ton répertoire existe alors :

if DirectoryExists('\SaveDB') then
begin
copyFile('toto.MDB','SaveDB\toto.MDB',true);
copyFile('titi.MDB','SaveDB\titi.MDB',true);

end
else
begin
// Si ton répertoire n'éxiste pas alors :
// on le créé.
CreateDir('SaveDB');
// Et on copie les fichiers.
copyFile('toto.MDB','SaveDB\toto.MDB',true);
copyFile('titi.MDB','SaveDB\titi.MDB',true);
end;

Il y a plusieurs solutions en voici une.

A très bientôt CyberMax452.

ROWAN.
0
cs_Rowan Messages postés 12 Date d'inscription jeudi 26 février 2004 Statut Membre Dernière intervention 16 septembre 2004
7 mai 2004 à 10:50
Re bonjour CyberMax452 ,

Pour restaurer tu fais l'opération inverse.

Je pense qu'il est préférable que tu désactives tes tables durant la restauration comme pour la copie d'ailleur, mais c'est moins génant durant la copie que durant la restauration.

//Fermeture des tables s'il y en a plusieurs.
Table1.Close;
Table2.Close;
Table3.Close;
//Restauration des tables.
// on ne peut restaurer que des fichiers existants.
// Donc tu test si tu a bien un répertoire (avec des fichiers dedans).
if DirectoryExists('SaveDB') then
begin
copyFile('SaveDB\toto.MDB','toto.MDB',true);
copyFile('SaveDB\titi.MDB','titi.MDB',true);
ShowMessage('La restauration a été effectuée');
end
else
begin
// Si le répertoire n'éxiste pas il n'y a rien a restaurer.
ShowMessage('Aucun ficihiers n''a été restauré !');
exit;
end;// fin du if et else.

//Ré ouverture des tables
Table1.Open;
Table2.Open;
Table3.Open;
end;// Fin de la procédure;

Salut ROWAN.
0
CyberMax452 Messages postés 18 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2004
7 mai 2004 à 13:30
Merci beaucoup pour ta solution mais j'ai décider de prendre une méthode beaucoup plus simple.

Pour sauvegarde :
- Supprimer le fichier backup
- Copier le fichier BD dans le backup

Et l'inverse pour le restaure...

Merci quand même :)

ZaZ
0
Rejoignez-nous