Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Base corrompue

11 réponses
Avatar
Pierre Rivet
Bonjour à tous,

Avant de sauvegarder une base de données, par une instruction de type

FileCopy CHEMINBASE,SAUVEGARDE

j'aimerais savoir s'il y a un moyen de vérifier que la base de données (en
Access 2000) n'est pas corrompue.

Le risque est évidemment de recopier une base corrompue en une autre base
corrompue.

Merci à l'avance,

Pierre

10 réponses

1 2
Avatar
driss hanib
Salut Pierre,

peut être ouvrir et fermer la base avant de la copier.
Voire la compacter..

Driss

"Pierre Rivet" a écrit dans le message de news:
4a685597$0$23447$
Bonjour à tous,

Avant de sauvegarder une base de données, par une instruction de type

FileCopy CHEMINBASE,SAUVEGARDE

j'aimerais savoir s'il y a un moyen de vérifier que la base de données (en
Access 2000) n'est pas corrompue.

Le risque est évidemment de recopier une base corrompue en une autre base
corrompue.

Merci à l'avance,

Pierre




Avatar
Philippe Klein
"Pierre Rivet" à écrit dans
news:4a685597$0$23447$:

Le risque est ‚videmment de recopier une base corrompue en une autre
base corrompue.




Partant du principe "ceinture & bretelles"
recopier au début du programme
la base avec la date du jour.
Histoire d'avoir une copie avant traitement.

--
www.elite-auto.fr
www.cousu-main.fr
www.mycbr.dyndns.org
Avatar
Pierre Rivet
Merci de cette idée,

Je vais essayer de la mettre en pratique...

Problème, la base de données peut atteindre une taille assez importante.
Donc au bout d'un moment, risque de prise de place importante dans le disque
dur, sauf si je trouve un sous programme pour supprimer les copies datant
d'une dizaine de jours, par exemple...

Affaire à suivre...

Encore merci,

Pierre

"Philippe Klein" a écrit dans le message de news:

"Pierre Rivet" à écrit dans
news:4a685597$0$23447$:

Le risque est ,videmment de recopier une base corrompue en une autre
base corrompue.




Partant du principe "ceinture & bretelles"
recopier au début du programme
la base avec la date du jour.
Histoire d'avoir une copie avant traitement.

--
www.elite-auto.fr
www.cousu-main.fr
www.mycbr.dyndns.org


Avatar
Jean-marc
Pierre Rivet wrote:
Merci de cette idée,

Je vais essayer de la mettre en pratique...

Problème, la base de données peut atteindre une taille assez
importante. Donc au bout d'un moment, risque de prise de place
importante dans le disque dur, sauf si je trouve un sous programme
pour supprimer les copies datant d'une dizaine de jours, par
exemple...



Hello,

pour cette partie, c'est assez simple;

1) Tu définis un répertoire dans lequel tu places tes copies

2) tu crées chaque copie avec FileCopy en générant un nom de la
forme nom_initial.YYYYMMDDHHSS.backup (ou ce que tu veux pour autant
que ce soit unique.

3) tu changes la date de création de la copie en utilisant l'API
SetFileTime
http://msdn.microsoft.com/en-gb/library/ms724933(VS.85).aspx

Un exemple d'utilisation ici:

4) Lors de la création d'une copie, tu en profites pour éliminer
les copies anciennes en parcourant les copies déjà existantes
et en récupérant leur date de création avec la
fonction VB filedatetime().
Tu n'as plus ici qu'à éliminer les copies plus vieilles
que X jours. Tu peux t'aider pour cela de la fonction datediff().

Si tu ne veux pas utiliser SetFileTime, tu peux simplement
procéder à l'élimination des copies les plus anciennes sur base
du nom si tu as respecté la convention de nommage xxxYYYYMMDDHHSS.

Cordialement,


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jean-marc
> 3) tu changes la date de création de la copie en utilisant l'API
SetFileTime
http://msdn.microsoft.com/en-gb/library/ms724933(VS.85).aspx

Un exemple d'utilisation ici:



J'ai oublié le lien:
http://vbnet.mvps.org/index.html?code/fileapi/folderdatetime.htm

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
David
Bonjour,

Si j'ai bien compris votre problématique
j'ai réalisé à mon usage une programme
comme vous le souhaitez.
Si cela vous dis vous pouvez vous en inspirer
et certainement l'améliorer :.

http://users.skynet.be/DAVID/Fichiers_Tempo.htm

Il s'agit du programme intitulé : "Enregistrer"

Je l'utilise depuis des années pour sauvegarder ma base
de données sans soucis.
Bien sur il est paramétrer pour correspondre à mon usage.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.

"Jean-marc" a écrit dans le message de news:
4a707049$0$2860$
3) tu changes la date de création de la copie en utilisant l'API
SetFileTime
http://msdn.microsoft.com/en-gb/library/ms724933(VS.85).aspx

Un exemple d'utilisation ici:



J'ai oublié le lien:
http://vbnet.mvps.org/index.html?code/fileapi/folderdatetime.htm

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Avatar
Pierre Rivet
Bonjour à tous,

et merci de vos réponses.

Pour l'instant, je réponds seulement à David,

car je viens de "chiader" son application, qui me semble très intéressante.

A mon avis, on pourrait l'améliorer, comme il le suggère, en remplaçant la
ligne
FileCopy Disque, CommonDialog1.FileName

par une ligne du type
DBEngine.CompactDatabase Disque, CommonDialog1.FileName, dbLangGeneral

on gagnerait un compactage de la base...

Par contre, ce qui m'intrigue, c'est sa ligne dans le bas de sa Grid, avec
les mots "Bon" ou "Mauvais" ???
Cela peut-il signifier que la base est corrompue ?

Pourrait-il nous en dire plus ?

Merci,

Pierre

Je vais maintenant examiner la réponse de Jean Marc....


http://users.skynet.be/DAVID/Fichiers_Tempo.htm

Il s'agit du programme intitulé : "Enregistrer"

Je l'utilise depuis des années pour sauvegarder ma base
de données sans soucis.
Bien sur il est paramétrer pour correspondre à mon usage.




Avatar
Pierre Rivet
Réponse à Jean Marc, que je remercie à nouveau au passage,

J'ai fait en détail l'application conformément au lien.
J'ai effectivement pu changer la date de modification pour un répertoire et
pour des fichiers.
C'est limite dangereux pour trafiquer des informations...
Mais je crois que ça ne répond pas vraiment à ma question, qui était de
savoir si une base était ou n'était pas corrompue...

Merci encore,

Pierre



"Jean-marc" a écrit dans le message de news:
4a707049$0$2860$
3) tu changes la date de création de la copie en utilisant l'API
SetFileTime
http://msdn.microsoft.com/en-gb/library/ms724933(VS.85).aspx

Un exemple d'utilisation ici:



J'ai oublié le lien:
http://vbnet.mvps.org/index.html?code/fileapi/folderdatetime.htm









Avatar
David
Bonjour Pierre,

A mon avis, on pourrait l'améliorer, comme il le suggère, en remplaçant
la ligne
FileCopy Disque, CommonDialog1.FileName
par une ligne du type
DBEngine.CompactDatabase Disque, CommonDialog1.FileName, dbLangGeneral







Merci pour l'idée; je savais pas que cela pouvait se faire par
programmation.

Cela peut-il signifier que la base est corrompue ?







Non, c'est juste une comparaison; plutôt que de lire chaque
chiffre cela me permet de lire d'un seul coup d'un seul,
si la copie est conforme à l'original.
Mais il existe sûrement des mots plus appropriés que
bon et mauvais.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.



"Pierre Rivet" a écrit dans le message de news:
4a71755d$0$17784$
Bonjour à tous,

et merci de vos réponses.

Pour l'instant, je réponds seulement à David,

car je viens de "chiader" son application, qui me semble très
intéressante.

A mon avis, on pourrait l'améliorer, comme il le suggère, en remplaçant la
ligne
FileCopy Disque, CommonDialog1.FileName

par une ligne du type
DBEngine.CompactDatabase Disque, CommonDialog1.FileName, dbLangGeneral

on gagnerait un compactage de la base...

Par contre, ce qui m'intrigue, c'est sa ligne dans le bas de sa Grid, avec
les mots "Bon" ou "Mauvais" ???
Cela peut-il signifier que la base est corrompue ?

Pourrait-il nous en dire plus ?

Merci,

Pierre

Je vais maintenant examiner la réponse de Jean Marc....


http://users.skynet.be/DAVID/Fichiers_Tempo.htm

Il s'agit du programme intitulé : "Enregistrer"

Je l'utilise depuis des années pour sauvegarder ma base
de données sans soucis.
Bien sur il est paramétrer pour correspondre à mon usage.








Avatar
Pierre Rivet
Merci David,

J'ai finalement récupéré, en l'adaptant à mon besoin, votre application dans
mon application de sauvegarde.

Je recherche la sauvegarde précédente, et je compare la taille des deux
fichiers. Si la suivante a une taille inférieure à la précédente, une fois
compactée, j'émets un message d'alerte.
C'est ce que j'ai trouvé de mieux pour l'instant.

Merci encore,

Pierre



"David" a écrit dans le message de news:
%
Bonjour Pierre,

A mon avis, on pourrait l'améliorer, comme il le suggère, en remplaçant
la ligne
FileCopy Disque, CommonDialog1.FileName
par une ligne du type
DBEngine.CompactDatabase Disque, CommonDialog1.FileName, dbLangGeneral







Merci pour l'idée; je savais pas que cela pouvait se faire par
programmation.

Cela peut-il signifier que la base est corrompue ?







Non, c'est juste une comparaison; plutôt que de lire chaque
chiffre cela me permet de lire d'un seul coup d'un seul,
si la copie est conforme à l'original.
Mais il existe sûrement des mots plus appropriés que
bon et mauvais.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.



"Pierre Rivet" a écrit dans le message de news:
4a71755d$0$17784$
Bonjour à tous,

et merci de vos réponses.

Pour l'instant, je réponds seulement à David,

car je viens de "chiader" son application, qui me semble très
intéressante.

A mon avis, on pourrait l'améliorer, comme il le suggère, en remplaçant
la ligne
FileCopy Disque, CommonDialog1.FileName

par une ligne du type
DBEngine.CompactDatabase Disque, CommonDialog1.FileName, dbLangGeneral

on gagnerait un compactage de la base...

Par contre, ce qui m'intrigue, c'est sa ligne dans le bas de sa Grid,
avec les mots "Bon" ou "Mauvais" ???
Cela peut-il signifier que la base est corrompue ?

Pourrait-il nous en dire plus ?

Merci,

Pierre

Je vais maintenant examiner la réponse de Jean Marc....


http://users.skynet.be/DAVID/Fichiers_Tempo.htm

Il s'agit du programme intitulé : "Enregistrer"

Je l'utilise depuis des années pour sauvegarder ma base
de données sans soucis.
Bien sur il est paramétrer pour correspondre à mon usage.












1 2