PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE


  • Fonctionnement de la fonction HCopieFichier
  • Conditions d'utilisation
  • Noms de fichiers de données et de répertoires sur le serveur
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
HCopieFichier (Fonction)
En anglais : HCopyFile
HFSQL Client/ServeurDisponible uniquement avec ce type de connexion
Effectue une copie d'un fichier de données HFSQL (fichiers .fic, .ndx, .ftx et .mmo s'ils existent) :
  • du serveur HFSQL sur le serveur (pour faire une sauvegarde par exemple).
  • du serveur HFSQL sur le client (pour faire une sauvegarde en local par exemple).
  • du client sur le serveur HFSQL (pour mettre à jour les fichiers de données par exemple).
  • d'un serveur HFSQL vers un autre serveur HFSQL.
Versions 18 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Java Cette fonction est désormais disponible pour les applications Java.
Nouveauté 18
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Java Cette fonction est désormais disponible pour les applications Java.
Universal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Java Cette fonction est désormais disponible pour les applications Java.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
// Copie des fichiers de données du serveur vers le serveur
// avec renommage et changement de répertoire
HCopieFichier(MaConnexion, ".\sauvegarde\fichierclient_sov.fic", MaConnexion, ".\fichierclient.fic")
// Copie des fichiers de données du poste serveur vers le poste client
HCopieFichier("", "C:\Données\Client.fic", MaConnexion, "client.fic")
// Copie des fichiers de données du poste client vers le poste serveur
HCopieFichier(MaConnexion, "client.fic", "", "C:\Données\Client.fic")
// Copie le(les) fichiers de données d'un serveur vers un autre serveur
HCopieFichier("CNX", "client.fic", "CNX2", "rep\client.fic", hSansIndex, JAUGE_MaJauge)
// Copie le fichier de données CLIENT d'un client sur lui-même (sauvegarde)
sMonRepertoireDestination est une chaîne = ComplèteRep(fRepExe()) + "RepertoireTest\"
SI PAS fRépertoireExiste(sMonRepertoireDestination) ALORS fRepCrée(sMonRepertoireDestination)
HCopieFichier("", sMonRepertoireDestination + "CLIENT.FIC", "", ...
ComplèteRep(fRepExe()) + "CLIENT.FIC", hCopieIndex)
Syntaxe
<Résultat> = HCopieFichier(<Connexion destination> , <Fichier de données destination> , <Connexion source> , <Fichier de données source> , <Mode> , <Jauge> , <Mot de passe>)
<Résultat> : Booléen
  • Vrai si le fichier de données a été copié,
  • Faux en cas d'erreur. La fonction HErreur permet d'identifier l'erreur.
<Connexion destination> : Chaîne de caractères (avec ou sans guillemets)
Nom de la connexion dans laquelle le fichier de données doit être copié. Cette connexion a été définie sous l'éditeur d'analyses ou grâce aux fonctions HDécritConnexion ou HOuvreConnexion.
Si ce paramètre correspond à une chaîne vide (""), le fichier de données sera copié sur le poste client.
<Fichier de données destination> : Chaîne de caractères (avec guillemets)
Nom et chemin du fichier de données destination. Si ce chemin et ce fichier de données n'existent pas sur le serveur, ils seront automatiquement créés.
Si le fichier de données destination est sur le serveur, le chemin est relatif à la base de données.
Attention : l'extension du fichier '.fic' doit être spécifiée.
<Connexion source> : Chaîne de caractères (avec ou sans guillemets)
Nom de la connexion à partir de laquelle le fichier de données doit être copié. Cette connexion a été définie sous l'éditeur d'analyses ou grâce aux fonctions HDécritConnexion ou HOuvreConnexion.
Si ce paramètre correspond à une chaîne vide (""), le fichier de données à copier est présent sur le poste client.
<Fichier de données source> : Chaîne de caractères (avec guillemets)
Nom et chemin du fichier de données source (à copier). Si le fichier de données source est sur le serveur, le chemin est relatif à la base de données.
Attention : l'extension du fichier '.fic' doit être spécifiée.
<Mode> : Constante de type Entier
Le mode utilisé peut correspondre à une des constantes suivantes :
hCopieIndexLe ou les index du fichier de données sont copiés (fichier NDX et fichier FTX s'il existe).
hCopieSiInexistantCopie le fichier de données uniquement s'il n'existe pas à l'emplacement indiqué sur le poste destination.
hCréeIndexLe 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é.
hSansIndexLe ou les index du fichier de données ne sont pas copiés (fichier NDX et fichier FTX s'il existe).
<Jauge> : Chaîne de caractères (avec ou sans guillemets)
Nom du champ Jauge présent dans la fenêtre et permettant de voir la progression de la copie.
<Mot de passe> : Chaîne de caractères (avec guillemets)
Mot de passe du fichier de données (s'il existe). Ce mot de passe est nécessaire si la constante hCréeIndex est utilisée.
Remarques

Fonctionnement de la fonction HCopieFichier

  • Le fichier de données copié est débloqué, ainsi que les enregistrements contenus dans le fichier de données.
  • Si l'index n'existe pas ou si l'index est corrompu, alors l'index n'est pas copié.
  • Pour copier le fichier de données, le mot de passe n'est pas nécessaire. Cependant, le fichier de données copié reste protégé par mot de passe.
  • Fichier de données en transaction : il est conseillé avant de copier le fichier de données de :

Conditions d'utilisation

  • Il est également possible de copier un fichier de données du poste client vers ce même poste client. Dans ce cas, la fonction est équivalente à la fonction fCopieFichier.
  • Cette fonction permet d'effectuer des copies vers un serveur HFSQL (en mode Client/Serveur). Cette fonction ne peut pas être utilisée avec un serveur externe (Oracle ou autre).
  • Pour toute copie d’un fichier de données HFSQL présent sur un poste local vers le serveur, tous les utilisateurs doivent avoir libéré préalablement ce fichier de données. Aucune connexion au fichier de données ne doit être en cours sinon la copie échouera.
  • Cas des fichiers de données répliqués (réplication entre serveurs) : Dans le cas d'un fichier de données répliqué, la fonction HCopieFichier ne doit pas être utilisée pour copier un fichier de données vers le serveur : la copie est impossible. Par contre, il est possible de réaliser une copie d'un fichier de données du serveur vers le poste client.

Noms de fichiers de données et de répertoires sur le serveur

  • Le nom des fichiers de données (fichiers .fic, .ndx, .ftx et .mmo s'ils existent) sur le serveur ne doivent pas comporter d'accents.
  • Sur un serveur LINUX, le nom des fichiers de données doit être en minuscules.
Composante : wd240hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
HcopieFichier sous iOS
ATTENTION !

Sous iOs le nom du fichier source pour la copie d'un fichier local vers HFCS DOIT être en minuscule, sinon erreur "impossible de trouver le fichier var/mobile/...."

Sylvain
14 avr. 2019
Copie de sauvegarde interne :
Attention, lorsque l'on désire effectuer une copie de sauvegarde (ou archivage) d'une table, il faut mentionner l'extension ".fic" dans le nom de votre table !

Le serveur HF/SQL ne fonctionne pas avec la notion de tables, mais bien avec des fichiers. Même si ces derniers sont déclarés dans votre analyse, la fonction HCopieFichier ne reconnaitra pas vos tables (ou fichiers)

Ex: archivage de mon table (fichier) fournisseur
Syntaxe correcte :
HCopieFichier(maconnexionHFSQL,".\Fournisseurs.fic",maconnexionHFSQL,".\HFournisseurs.fic")
Syntaxe fausse :
HCopieFichier(maconnexionHFSQL,Fournisseurs,maconnexionHFSQL,HFournisseurs)
Laurent RICHELLE
20 aoû. 2017