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...
|