Commande d'alerte d'une table endommagée

FRANAP Messages postés 4 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 11 juin 2009 - 11 juin 2009 à 11:49
FRANAP Messages postés 4 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 11 juin 2009 - 11 juin 2009 à 21:37
Bonjour,

Merci encore pour le VRunFoxpro qui nous aide bien pour mettre à jour les tables, chez les clients.

Chez un client, utilisant une application FoxPro sur un serveur, suite à un incident éléctrique (que le client ne nous a pas signalé mmédiatement !!) toutes les tables ont été endommagées et il a fallu réparer en urgence (bien sûr)
Ma question :
Existe-il une commande qui pourrait nous alerter sur un incident_système ou une table endommagée
et qui serait lancée lors de la 1ere connexion du 1er utilisateur.
Elle  bloquerait l'accés à l'application et enverrait un message d'alerte (compréhensif, avec peut-être le type d'incident et le nom de la table endommagée)

Merci de votre réponse et à bientôt !

Fran

2 réponses

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
11 juin 2009 à 16:51
Bonjour,

1 commande, non. Mais tu peux prévoir dans tes applications une routine de vérification, qui d'une part teste la fermeture correcte de l'appli la fois précédente, et d'autre part effectue des vérifs sur les tables.

Les vérfications sur les table porteront dans l'ordre sur les index, puis sur les memos. si un index fait 0 octets, alors c'est que l'appli a été fermée brutalement. mais si tu veux vérifier tes index plus précisément, alors tu dois ouvrir en exclusive et relancer une réindexation (ou bien carrémént reconstruire tous les index par du code).
Pour les mémos, le plus simple est de rajouter un enregistrement, d'écrire dans le memo, puis de faire un pack memo, puis delete l'enregistrement ajouté (et pack éventuellement).

Si ça ne suffit pas, tu peux utiliser le SET TABLEVALIDATE (si tu as VFP9).
Et si c'est encore insuffisant, il ne te reste plus qu'à vérifier le contenu du header des tables en les lisant avec des focntions de bas niveau (FOPEN, FREAD, FSEEK)

Pour tester la fermeture correcte, il faut vérifier l'état d'un drapeau qui est posé à la fermeture (dans le queryunload du form principal, ou dans le main.prg après le clear events qui lui redonne la main). ce flag peut être une valeur en clé de registre, ou un fichier dans un répertoire spécifique, etc...).
Si l'appli est "tuée", le flag est incorrect, tu le sais au démarrage, et tu peux lancer une vérif approfondie.

tu fais tout ça dans un TRY/CATCH, au lancement...
0
FRANAP Messages postés 4 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 11 juin 2009
11 juin 2009 à 21:37
Bonsoir,

Merci pour la réponse rapide.
Je vais essayer de l'appliquer.
Merci !

Fran
0
Rejoignez-nous