Bonjour,
Je mets en place la copie de plusieurs fichiers (typiquement, une clôture comptable). Pour ce faire, je parcours en boucle un tableau qui contient les fichiers .fic concernés. Les connexions, répertoire de destination et source sont contenus dans des variables :
Si j'utilise cette ligne de code avec la constante hCopieIndex ou la constante hSansIndex, pas de soucis : la copie se passe bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 POUR TOUT lsaFichier DE ltabTableauFic SI HCopieFichier(gcnxConnexionServer,lsaRepDestination + lsaFichier,gcnxConnexionServer,lsaRepRacinesSource + lsaFichier,hCopieIndex) ALORS lblCopieRéussie = Vrai FIN FIN
Par contre, la constante hCréeIndex me renvoie systématiquement un message d'erreur du type
"Que s'est-il passé ?
Erreur renvoyée par le serveur <w8-fixe:4900> :
Impossible d'écrire dans le fichier <BD\4\Compta\ecriture.fic>.
Code erreur : 70152
Niveau : erreur fatale (EL_FATAL)
Code erreur WD55 : 152
Message d'erreur système :
Accès refusé."
Ce qui m'interpelle, c'est que cette erreur fait allusion au fichier source ?!?
Pourquoi la fonction de copie doit avoir accès (et écrire sur) au fichier source ?
Et, cerise sur le gâteau, malgré le message d'erreur, le .fic est bien copié, mais sans index (ou index corrompu), et les index du fichier source sont eux aussi corrompus ?!?
Quelqu'un a une idée de ce qui se passe ? Est-ce que j'ai loupé une "subtilité" ?
L'aide précise pour hCréeIndex : "Le ou les index du fichier de données ne sont pas copiés (fichier NDX et fichier FTX s'il existe). Ils sont automatiquement re-créés sur la destination par ré-indexation.
Si le fichier de données est protégé par mot de passe, le paramètre <Mot de passe> doit être spécifié."
J'avoue ne vraiment pas comprendre...
D'avance merci.
Cordialement.
Partager